Saturday, May 30, 2026
cf294ed5-86d6-4c79-aa5b-1c691b9478b4
| Summary | ⛅️ Mostly clear starting in the afternoon. |
|---|---|
| Temperature Range | 18°C to 25°C (64°F to 77°F) |
| Feels Like | Low: 65°F | High: 88°F |
| Humidity | 76% |
| Wind | 10 km/h (6 mph), Direction: 173° |
| Precipitation | Probability: 0%, Type: No precipitation expected |
| Sunrise / Sunset | 🌅 05:36 AM / 🌇 07:54 PM |
| Moon Phase | Waxing Gibbous (48%) |
| Cloud Cover | 18% |
| Pressure | 1013.48 hPa |
| Dew Point | 63.65°F |
| Visibility | 6.19 miles |
Residents of Akrotiri are preparing legal action against plans by the British Bases to install 32 additional antennas in the area, with local authorities examining the possibility of taking the case to the European Court of Human Rights.
Kourion municipality confirmed they were seeking legal avenues to challenge the project, which would require the compulsory acquisition of approximately 340 acres of land within the Akrotiri area.
The planned development forms part of a wider communications infrastructure project at the British bases.
However, residents argue that the area already hosts a significant number of antenna installations and have expressed concern about what they describe as rising cancer rates within the local community.
Kourion mayor Pantelis Georgiou, who also chairs the Akrotiri management committee, said legal experts had been appointed to examine all available options.
Lawyer Simos Angelides has been tasked with assessing possible legal action on behalf of the committee, including the prospect of seeking an injunction to halt the project.
Georgiou acknowledged that obtaining such an order could prove difficult but said the community intended to pursue all available remedies.
At the same time, the municipality has retained lawyer Achilleas Demetriades to provide a separate legal opinion with a view to examining whether the matter could ultimately be referred to the European Court of Human Rights.
According to Georgiou, meetings have been requested with President Nikos Christodoulides as well as with the Foreign Minister Constantinos Kombos.
Further discussions are also expected with the legal service once assessments are completed.
“The matter now concerns the protection of the rights of residents living in the Bases areas,” Georgiou said.
“The goal is securing a better everyday life and quality of life for the people who live here.”
The controversy centres on plans announced by the British authorities to install 32 new antennas in the Akrotiri region.
Local authorities have also raised concerns over the scale of the land acquisition required for the project and its location within an environmentally protected area.
Community representatives have argued that further independent studies should be conducted before any works proceed.
Previous studies have not established a direct link between existing antenna installations and cancer cases in the area.
Independent testing conducted following the installation of the Pluto antenna in 2001 found radiation emissions significantly below EU safety limits.
Georgiou has previously argued that residents have reported an increasing number of cancer diagnoses within the community and has called for updated epidemiological data and greater transparency regarding future infrastructure plans.
The British bases have previously stated that environmental assessments and monitoring measures would accompany the project and have indicated a willingness to make relevant information publicly available.
Former British high commissioner in Cyprus Stephen Lillie has been named as the United Kingdom’s ambassador in Athens.
Lillie served in Nicosia between 2018 and 2022, and said that he was “honoured” to take up the role. He will commence his duties in Athens in September.
He replaces Matthew Lodge, who has been stationed in Athens since 2021.
After departing Nicosia, Lillie has served as the British foreign office’s director for defence and international security until last year, being tasked with leading the office’s work on what the British government describes as “a broad ranger of areas”.
These areas, it said, “include Nato, European defence and security, global security partnerships, counter-proliferation, and arms exports”.
He undertook Greek language training before undertaking the role in Cyprus, having previously been the director of the British foreign office’s Asia pacific directorate, and having previously served as ambassador in Manila and consul-general in Guangzhou.
Two late goals saw Pafos FC beat Apollon to win the Cyprus Cup at Nicosia’s GSP Stadium on Friday night, with the west coast-based side winning the island’s premier cup competition for the second time in their 12-year history.
Brazilian winger Jaja opened the scoring for the Paphites in the 84th minute, with Portuguese midfielder Pedro Rodrigues putting the game beyond all doubt when he doubled their lead in stoppage time.
The game was attended by President Nikos Christodoulides, who hails from Paphos, and his predecessor Nicos Anastasiades, a Limassol native and a known fan of Apollon. The pair sat next to each other in the GSP’s west stand and were seen deep in conversation before kick-off.
Friday’s result sets in stone the allocation of European places for next season, with Omonia having qualified for the Champions League as first division winners.
They will enter the competition at its second qualifying round, with the draw set to take place on June 17 and fixtures to be played between July 21 and 22 and between July 28 and 29.
As cup winners, Pafos FC have secured qualification to the Europa League. They will enter the competition at the second qualifying round, with the draw set to take place on June 17 and fixtures to be played on July 23 and July 30.
Despite losing Friday’s cup final Apollon will play European football next season, having qualified for the Conference League by virtue of finishing in third place in Cyprus’ domestic league.
They will join Aek Larnaca, who finished in second place in the first division, in entering the competition at the second qualifying round, with the draw and fixtures set to take place on the same days as the Europa League’s second qualifying round.
Next year’s Champions League final will take place at Madrid’s Metropolitano Stadium, while next year’s Europa League final will take place at Frankfurt’s Waldstadion, and next year’s Conference League final will take place at the Besiktas Stadium, which hosted last week’s Europa League final.
That final was won by Aston Villa, with the Conference League final having been won by Crystal Palace a week later.
English sides will be able to complete a clean sweep of this season’s European competitions if Arsenal beat defending Champions League winners Paris Saint-Germain on Sunday at Budapest’s Puskas Arena.
A park-and-ride service will be offered free of charge in Larnaca on the evenings of both Sunday and Monday, with events set to be held in the town to mark the Kataklysmos festival.
The town’s mayor Andreas Vyras explained that people will be able to park at the new GSZ Stadium’s car park, between the Aek Arena and the Metropolis mall, with buses departing for the Larnaca central bus station, near the Finikoudes beach.
He added that the service “is an important step towards better serving the town’s residents and visitors during the celebrations”.
The service will operate between 6pm and 12.30am on both days, with buses departing every half an hour.
The Turkish Cypriot ‘foreign ministry’ on Friday dismissed President Nikos Christodoulides’ assertion that there is a “window of opportunity” for a resumption of negotiations aimed at solving the Cyprus problem before the end of the year, describing his claim as “far from the truth”.
It added that the idea of such a “window of opportunity” constitutes “an empty perception operation aimed at misleading international public opinion”.
“The stance of the Turkish Republic of Northern Cyprus is clear and unwavering. The Greek Cypriot side, however, continues its archaic mentality of not recognising the Turkish Cypriot people as equal partners and claiming to be the sole owner of the island,” it said.
It added that “the model, tried for more than half a century and which has collapsed due to the Greek Cypriot side, its maximalist demands, and its approach of ignoring the Turkish Cypriot people’s inherent rights, is completely exhausted”.
“Expecting different results with the same methods is nothing but a wase of time,” it said.
It then said that it has “shared with all relevant parties that a solution on the island is only possible with the acceptance of the sovereign equality and equal international status of the Turkish Republic of Northern Cyprus”.
While this is the ‘foreign ministry’ and ‘minister’ Tahsin Ertugruloglu’s position, it is not shared by Turkish Cypriot leader Tufan Erhurman, who has instead published a four-point proposal which he says must be fulfilled before negotiations commence.
Those four points, sometimes referred to as “preconditions” – a term Erhurman resents – foresee that the Greek Cypriot side accept political equality, time-limit negotiations, and preserve all past agreements, and that the UN guarantee that embargoes placed on the Turkish Cypriots be lifted if the Greek Cypriot side leaves the negotiating table again.
Nonetheless, the ‘ministry’ on Friday said that “a new process will only be possible if the sovereign equality and equal international status of the Turkish Republic of Northern Cyprus is recognised”.
“An agreement between the two sides on the island is only possible with the existence of two independent, sovereign states living side by side and the acceptance of this reality,” it added.
Like the insistence on “sovereign equality and equal international status”, this is not Erhurman’s position. Erhurman is known to favour a federal solution to the Cyprus problem.
The ‘ministry’ also added that “the attempts by the Greek Cypriot administration to create artificial time pressure or a timetable based on [Guterres’] term in office are meaningless to the Turkish Cypriot side”.
“As all sides know, there is no basis for starting negotiations. Therefore, the Greek Cypriot administration’s attempts to mislead the international community into believing that negotiations will begin are far from reality,” it said.
It added that “taking into account the realities on the island, the international community must take concrete steps swiftly and without delay to lift the unjust and illegal isolation imposed on the Turkish Cypriot people for more than 60 years”.
“The Turkish Republic of Northern Cyprus, with the full support of its motherland, the Republic of Turkey, is determined to create a fair, lasting, and sustainable environment of cooperation on the island and in the region,” it said.
Christodoulides had said on Thursday that there exists “window of opportunity” for the resumption of talks between now and the end of the year, when Guterres will retire from his position as UN secretary-general.
He has also been insistent that Guterres has undertaken a “new initiative” with the aim of bringing about a resumption of formal negotiations, though the question of when a “new initiative” on the Cyprus problem may be undertaken has been ongoing for weeks.
Christodoulides’ position is that is “new initiative” is already ongoing, but Erhurman said last month that such an initiative will begin in July, following the conclusion of Cyprus’ six-month term as the holder of the Council of the European Union’s rotating presidency.
UN envoy Maria Angela Holguin is set to visit the island and hold separate meetings with both Christodoulides and Erhurman on June 8.
The Limassol district court has banned the “Globe of Death” attraction on the Limassol seafront on Friday following a request from the municipality.
The carnival stunt involves motorcyclists performing loops in a metal cage.
The court order prohibits the attraction’s operation during the Kataklysmos holiday period.
Limassol police have been notified to enforce this decree.
The municipality urged the public to be cautious, as the attraction lacks the necessary operating permit.
The fire service deemed it unsuitable after an inspection, and municipal services found safety conditions unmet, preventing permit issuance.
Officials stated the court order was made for public safety.
The municipality emphasised that the ban applies to the Limassol embankment area and advised visitors to adhere to safety instructions and avoid unauthorised facilities during Kataklysmos events.
The ports authority on Friday announced a tender for consulting services related to the planned €350 million expansion of the Vasiliko port in Mari.
“The announcement constitutes an essential step for the implementation of a project that aims to upgrade Cyprus’ port infrastructure and strengthen the country’s energy, commercial and economic activity,” the ports authority said.
The tender concerns the provision of consulting services for front-end engineering design, as well as the detailed design and supervision of phase A of the construction works for the expansion of the port.
“The port of Vasiliko is moving into the next phase of development. The Cyprus ports authority is investing in modern, strategic and sustainable port infrastructure,” the authority said.
According to the ports authority, the tender notice has been published on the Republic of Cyprus’ official online public procurement platform, eProcurement.
The transport ministry announced plans for the expansion of the port in early 2025, with the proposed works set to include the construction of nine new berths, breakwaters, a deepened approach channel and enhanced land use in the surrounding port area.
The project aims to serve as a core infrastructure hub for Cyprus and the wider region, connecting commercial, energy, military and environmental operations.
Upon completion, the port is expected to handle approximately five vessels per day, or around 1,770 ships annually.
The modernisation of the project is set to receive a total of €18,781,957 in funding as part of the European Union’s financing programme Connecting Europe Facility (CEF), with a first phase budgeted at €85 million.
President Nikos Christodoulides on Friday condemned as “reckless” the collision of a Russian drone into a block of flats in the Romanian city of Galati, adding that the presence of the drone in Romanian airspace constituted “a flagrant violation of Romania’s sovereignty”.
“The drone crash [into] a residential building in Galati is a serious and reckless escalation, a flagrant violation of Romania’s sovereignty, and a stark reminder that Russia’s war against Ukraine continues to threaten European security,” he wrote in a post on social media.
He added that as such, “European coordination and solidarity in responding to evolving security challenges is crucial”, and that “Cyprus stands in full solidarity with Romania and the families of the injured”.
Romania’s defence ministry had confirmed on Friday morning that a drone had “entered Romanian airspace, being tracked by radar to the southern area of the city of Galati”, and “crashed into the roof of a block of flats”, with the block of flats then catching fire.
It also said that the drone had strayed into Romanian airspace amid “drone attacks on civilian and infrastructure targets in Ukraine in the vicinity of the river border with Romania”.
Galati is located in Romania’s east, a short distance from the country’s tripoint border with Moldova and Ukraine on the river Danube.
Romanian Foreign Minister Oana Toiu confirmed that two people had “sustained minor injuries” as a result of the incident, while “several residents required medical attention”.
“This incident represents a serious and irresponsible escalation by the Russian Federation. Romania will take the necessary diplomatic response measures regarding this serious violation of international law and of its airspace,” she said.
She added that her country “has informed [European Union] member states, the allies, and the Nato secretary-general [Mark Rutte] of the circumstances, and has requested measures to accelerate the transfer of anti-drone capabilities to Romania”.
“The Russian Federation bears direct responsibility for these grave and irresponsible actions. Romania will act with the utmost determination to increase international pressure on the Russian Federation with a view to achieving an immediate and comprehensive ceasefire,” she said.
Rutte, meanwhile, confirmed that he had spoken to Romanian President Nicusor Dan, and “assured him of Nato’s absolute solidarity with Romania”.
“I affirmed that Nato stands ready to defend every inch of allied territory. We will continue to enhance our readiness to deter and defend against any threat, including from drones,” he said.
He added that “Russia’s reckless behaviour is a danger to us all”, and that the incident in Galati “showed yet again that the implications of their illegal war of aggression do not stop at the border”.
“Russia’s war needs to end, as does Russia’s disregard for civilian safety,” he said.
European Commission President Ursula von der Leyen said of the incident that “Russia’s war of aggression has crossed yet another line”.
Russia itself, however, denied the accusations levelled at it, according to the country’s Ria Novosti news agency.
“All the accusations that we hear, in particular about drones somewhere in the countries of the European Union, they are all unsubstantiated. Not a single fact, material, piece of evidence has been presented,” the country’s foreign ministry’s spokeswoman Maria Zakharova was quoted as having said.
The Cyprus Association of Cancer Patients and Friends (Pasykaf) issued a message on Friday urging for better protection of young people from nicotine addiction and more support for smokers wishing to quit, ahead of World No Tobacco Day on Sunday.
The organisation highlighted the need to update legislation in Cyprus to address non-nicotine tobacco products, which are still available due to legal loopholes and often accessed by minors.
Pasykaf is celebrating 40 years in cancer prevention and health promotion and is participating in the World Health Organisation campaign themed “Unmasking the appeal, countering nicotine and tobacco addiction.”
This year’s campaign highlights how the tobacco industry targets children and adolescents with flavoured products, appealing packaging, digital marketing and new nicotine forms, contributing to a “new cycle of addiction” among youth.
World No Tobacco Day concludes a month-long awareness campaign in Cyprus addressing the health risks of tobacco and nicotine, industry tactics, and the need for stronger public health protection.
Pasykaf’s director of prevention and social marketing, Georgia Orfanou, stated that the organisation prioritises evidence-based interventions in collaboration with health and education ministries.
“Our focus remains on the tobacco industry’s evolving strategies that target young people,” she said.
Pasykaf, she said, aims to prevent youth from using tobacco and nicotine products while helping adults quit.
Orfanou also emphasised the smoking cessation programme by the state health services organisation and the toll-free support line 1431, which offers professional assistance to those wanting to stop smoking.
Pasykaf cautioned that smoking and new nicotine products are linked to serious cancers, such as lung and bladder cancer, as well as cardiovascular and respiratory diseases.
They also noted that exposure to smoke and vapour can harm respiratory function and increase health risks, especially for those with chronic illnesses.
Transport Minister Alexis Vafeades on Friday said his ministry has an “essential role” to play in improving the lives of people with multiple sclerosis, in his address at an event held by the Pancyprian multiple sclerosis association to mark world multiple sclerosis day, which will be observed on Saturday.
“Transport, public infrastructure, roads, buildings, bus stops, and public service areas directly affect people’s quality of life. Accessibility is not a form of welfare, it is a prerequisite for dignity, autonomy, and active participation in society,” he said.
It is for this reason, he added, that infrastructure projects “must take into account the real needs of the people, serving safety, functionality, and easier daily mobility”.
“No policy can be comprehensive if it is not formed in dialogue and with the people it concerns. That is why cooperation with the health ministry, the social welfare deputy ministry, and the Pancyprian multiple sclerosis association is essential, so that our interventions respond to the needs of everyday life,” he said.
As such, he said, Friday’s event provided “an opportunity for the provision of information, for the raising of awareness, and for meaningful dialogue”.
“It is, above all, a day of recognition of the daily efforts exerted by people living with multiple sclerosis, their families, and those who are by their side,” he said.
He added that multiple sclerosis “affects everyday life in ways which are not always visible”, saying that “fatigue, difficulties in movement, changes in functionality, and the uncertainty which can accompany the course of the disease create real challenges”.
“For the state, the support of people with multiple sclerosis is tied to one basis principle: every person must be able to participate equally in social, professional, and daily life,” he said.
Around 3,000 people in Cyprus are living with multiple sclerosis, of whom 69 per cent are women.
The disease is a condition which affects the brain and the spinal cord, with common symptoms including fatigue, blurred vision, dizziness, and muscle cramps. It has no cure.
The Pancyprian multiple sclerosis association was founded in 1986, and provides physiotherapy, occupational therapy, and both psychological and social support to people living with the disease as well as their relatives.
It used the day to call for better training for healthcare professionals in relation to the disease, and increased investment in research and clinical development.
In many cases, it said, patients face “long periods of uncertainty” before receiving a diagnosis, especially in countries with limited access to specialists and diagnostic tools.
Defence Minister Vasilis Palmas on Friday hailed Cyprus’ strengthening relations with the United States at the confirmation ceremony of Leonidas Pheraiou, the first Cypriot national to enrol at the United States naval academy.
“Bilateral relations between the Republic of Cyprus and the US in the fields of defence and security are currently at their highest level, based on mutual trust and a common vision for stability and security in the wider region,” he said.
He then congratulated Pheraiou on his “significant success” in receiving a place at the academy and added that “this achievement may serve as a motivation in the future for even more young people interested in following a similar path”.
“I have no doubt that you will serve and honour the Republic of Cyprus, your family, the army, and yourself with your presence in the United States,” he said.
Based in Annapolis, in the state of Maryland, the United States Naval Academy educates those who aim to serve in the US navy and marines. It was established in 1845.
Notable graduates include late US president Jimmy Carter and astronaut Sunita Williams.
Military ties between Cyprus and the United States have been strengthened in recent years, with the country having last year been authorised Cyprus to buy military hardware directly from the US government after joining three programmes run by the country’s department of defence.
The country was incorporated into the US defence security cooperation agency’s foreign military sales (FMS) programme, its excess defence articles (EDA) programme and will be allocated resources under the US’ ‘Title 10’ security assistance provisions.
Trade unions Pasydy, Sek, Peo, Deok, Pasyki and Pasyno on Friday expressed “deep concern” over the lack of progress in renewing the collective bargaining agreement with state health services provider Okypy.
“Despite our repeated and well-documented interventions, as well as the constructive spirit demonstrated throughout the consultations, the Okypy board continues to refuse to engage in substantive discussion on issues concerning salary prospects, career advancement and the fair treatment of the organisation’s employees,” the unions said in a joint statement.
The unions said they were particularly disappointed by Okypy’s alleged refusal to agree to the implementation of pay scales, arguing that the organisation’s “unjustified intransigent stance” was creating conditions of professional stagnation.
They added that Okypy’s position deprived staff of necessary prospects for professional growth and undermined “the sense of security that should prevail in a workplace”.
“(…) the board of directors has to date failed to demonstrate the necessary will for substantive progress, nor has it provided a clear commitment to continuing a genuine and productive dialogue on this specific issue,” the union said.
According to the unions, “significant provisions” and terms agreed in previous collective agreements had not been implemented, despite commitments made by Okypy.
The unions said that the effects of Okypy’s stance reached beyond the employees, warning that it had broader consequences for the smooth operation of Okypy, with a “large number of employees” seeking employment elsewhere.
“Consequently, the labour unions decided to send an official letter to the minister of health, with the aim of fully informing him of the position of the organisation’s board of directors, as well as the serious consequences this has for the staff and the operation of Okypy,” the statement concluded.
The unions also called on Health Minister Neophytos Charalambides to intervene in order to “break the deadlock” in the ongoing negotiations.
Pizzerias, unlike traditional eateries, live and die by table turnover. That’s the nature of the business when you sell a high-margin, low-cost product. Simple economics.
And pizza itself is profoundly simple, too. Bread with stuff on top.
Luckily, it never seems to go out of style.
Here in Nicosia, this has perhaps been best illustrated by the capital’s newest sensation: Spin.
Getting a table here takes planning. Our first attempt came on a Thursday night at around 10pm. My faithful dining companion and I arrived at the narrow, slightly out-of-the-way arcade the pizzeria calls home expecting a lively, bustling scene.
Instead, we were greeted by haunted stillness.
The pizzaioli stood behind the counter looking like shellshocked Verdun veterans, eyeing us as if we were newly arrived commanding officers preparing to order them over the top once more.
Instead, the manager informed us that the restaurant had simply sold out. By the time we arrived, more than 200 patrons had already beaten us to the punch and there was nothing left to sample.
We were told to come earlier next time, as Spin does not take reservations.
We redoubled our efforts a few days later, this time with a party of four. Even arriving early proved no guarantee of success. A fair few diners had already claimed tables by the time we got there.
The atmosphere is unmistakably laid-back, perhaps best encapsulated by the urban-chic patrons eating pizza on the steps of the arcade itself – clearly the most coveted seats in the house.
The menu, much like the venue, is concise and curated. Sourdough pizza, local wine and craft beer.
We decided each of us would order a different pizza in an attempt to cover two-thirds of the menu. This was easier than expected given that Spin offers just six pizzas, including the ironically named vegan option, Soil.
My faithful dining companion kept things simple with the evergreen Margarita (sic), albeit with a spin in the form of grated anari cheese atop the mozzarella.
Our friends opted for the Pepperoni and The Cure.
I went with the cryptically named Agrelli, if for nothing else than the fact that its ingredient list on the menu ran four lines long: crème fraîche, yellow sweet zucchini, scamorza affumicata, asparagus, anari, sea salt and Sichuan pepper.
Whatever happened, I thought to myself, at the very least I would have something to say about it.
Being made with sourdough, the pizzas arrived looking every bit the part, sporting ballooned, blistered crusts with just the right amount of char. The crisp exterior delivered a measured crunch before giving way to a soft, chewy interior, offering a pleasant balance between structure and elasticity.
Both the Margarita and Pepperoni benefited from their less conventional additions – the anari on the former and the Parmigiano Reggiano on the latter. In both cases, the extra cheese elevated the savoury depth of the pizzas without overwhelming their core flavours.
The Agrelli, despite the intimidating ingredient list, turned out to be surprisingly restrained and delicate. No single component dominated the others; instead, the pizza unfolded gradually, each bite revealing something slightly different from the last. A well-balanced success.
But the undisputed champion of the evening was The Cure. Its infused creamy tomato sauce, smoked pancetta, scamorza affumicata, Parmigiano Reggiano and fresh mozzarella combined into something deeply comforting. The smoky, rich and indulgent ingredients made every mouthful feel rewarding.
The friend who ordered it looked increasingly smug with every passing slice – and, frankly, deserved to.
By the end of the evening, it became clear that Spin is part of something larger currently taking place in Nicosia.
The city’s once-humble pizza scene is undergoing something of a revolution. New pizzerias are opening with increasing frequency, they are gaining traction, they are being talked about. Local chefs are experimenting with doughs, fermentation methods and unconventional toppings, all while putting a distinctly Cypriot touch on a quintessentially foreign dish.
This is what makes pizza so captivating in a smaller place like Cyprus. Unlike Naples, Rome or New York, there is no baked-in dogma here dictating what a pizza must be. No sacred rulebook governing the perfect slice. The pizzaioli of Nicosia – whether formally trained or gloriously self-taught – are still allowed to flourish through experimentation.
Spin feels very much like a product of that freedom.
It may not win encomiums from pizza purists, but there is plenty to admire at a place willing to push beyond the predictable formula while still remembering that pizza, at its core, is meant to be simple, joyful and shared.
And judging by how difficult it is to get a table, Nicosia seems more than willing to embrace that idea.
VITAL STATISTICS:
SPECIALTY: Pizza
WHERE: Spin, Kosta Chatzopoulou, Nicosia
WHEN: Wednesday to Saturday 6-11.30pm
CONTACT: 99 010214
HOW MUCH: Pizza: €9 – €16
A livestock farmer who said he lost 2,300 sheep and goats to compulsory culling measures told protesters outside the presidential palace on Friday that “the only thing left for us is the donkey”, as farmers stepped up pressure on the government over its handling of the foot-and-mouth disease outbreak.
The farmer, whose holding was among the first affected, said three months after his animals were culled, he has yet to receive compensation.
“Ninety days have passed and we have not been paid. We are not getting any response from anyone. They are telling us to be patient, and I don’t know where I will find justice,” he said.
He told fellow protesters that the loss had effectively wiped out his livelihood. “We don’t want their money; we want our animals back. I had 2,300 sheep. Our farm has been wiped out. We have no information, no response. It’s been three months now. When will we bring animals back?”
His remarks came as livestock farmers gathered outside the presidential palace after reaching an agreement with police which allowed the protest to proceed.
Earlier tensions at the GSP stadium delayed the demonstration after authorities restricted the movement of tractors and heavy vehicles towards the palace.
Under the agreement, larger vehicles remained parked at the stadium while protesters were transported by bus.
A limited number of smaller vehicles and pickup trucks were permitted to accompany the march.
The demonstration was organised by the group “the voice of the livestock breeders”, which is calling for an immediate halt to animal culls, faster compensation payments and direct intervention by President Nikos Christodoulides.
The Supreme Court of Cyprus annulled an arrest warrant against the mother of a minor involved in a custody dispute on Friday, ruling that there was insufficient evidence to justify restricting her freedom.
Judges said the district court was wrong to claim the warrant was “necessary and desirable,” as the police evidence did not support that conclusion.
The court stressed that arrest warrants must be based on specific, sufficient and verifiable grounds because they interfere with personal liberty.
It added that the issue went beyond procedure and involved a substantive review of legality and the protection of individual rights.
Cyprus will begin operating its new CY Alert population warning system from June 2, with authorities set to conduct a series of test notifications across the island before a nationwide exercise later in the month.
The civil defence department announced on Friday that the system will be used to provide real time alerts to the public during emergencies and disasters, enabling residents in affected areas to take protective action.
As part of the rollout, test notifications will be sent to mobile phones between June 2 and June 15. The alerts will be accompanied by a distinctive loud sound and vibration and will display the message “TEST TEST TEST” or “EXERCISE EXERCISE EXERCISE”.
Civil Defence stressed that notifications carrying those messages are part of scheduled testing and “do not require any action” from the public.
The first tests will take place next Tuesday between 11am and 12pm in the communities of Pissouri and Moniatis, followed by a second exercise between 4pm and 5pm in Psevdas.
Further tests are scheduled for next Sunday between 10am and 11am in Argaka, Avgorou and Ora, and on June 10 between 4pm and 5pm in Fini and Kalopanayiotis.
The programme will conclude on June 15 with a nationwide notification exercise between 3pm and 4pm simulating a missing person alert.
Authorities said residents in neighbouring areas may also receive test messages during the exercises.
The CY Alert system is designed to issue immediate warnings during situations that threaten public safety, including natural disasters and other emergencies.
Civil Defence urged members of the public to ensure alert notifications are enabled on their mobile devices.
Guidance is available through the government’s support line on 1450, while instructional videos have also been published on the organisation’s official social media channels.
Officials said the testing period will allow the system to be assessed under real operating conditions before it enters full service.
Greece has contributed €67,000 to the Committee on Missing Persons (CMP), with the donation designated for the committee’s work during 2026, according to a statement issued by the Greek embassy in Nicosia on Friday.
The embassy said the payment forms part of a voluntary contribution supporting the CMP’s ongoing humanitarian and investigative work to locate and identify missing persons from intercommunal conflict periods on the island.
Greece said it “supports the work of the CMP” through the funding, which is directed towards excavation and identification efforts carried out by the committee’s joint teams.
The CMP continues to conduct excavations across Cyprus, with officials confirming earlier this week that five more sets of remains are currently undergoing DNA identification at its anthropological laboratory.
More than 1,000 missing persons from both communities have been identified to date, while several hundred cases remain unresolved.
Its annual budget is largely funded by the European Union and international donors, with additional voluntary contributions from participating states.
Work continues at multiple excavation sites across the island, including military and civilian locations, as part of ongoing efforts to recover and identify remains.
The committee, established in 1981, began systematic excavation operations in 2006 to investigate cases linked to intercommunal violence in the 1960s and the Turkish invasion of 1974.
According to widely cited UN and Council of Europe records, the Turkish invasion of Cyprus resulted in around 3,000 deaths, the displacement of approximately 160,000 Greek Cypriots, 40,000 Turkish Cypriots, as well as documented cases of systemic rape and other serious human rights violations committed during and after the fighting.
The Cyprus-Greece ferry connection for the summer season launched on Friday with the AF Marina departing Limassol for Piraeus, marking the first sailing of the year on the route.
The Italian-flagged vessel replaced the Daleela, which had operated the service since its reintroduction.
The vessel departed Limassol passenger terminal shortly after 1pm carrying 129 passengers, 70 cars and several pets.
The service operator Scandro Holding Ltdsaid the new vessel is four years newer than its predecessor and has increased capacity.
Chief executive Charalambos Manolis said the company was expecting a stronger season.
“We hope for a good season with even more passengers, offering upgraded services,” he said, adding that bookings were already showing an increase compared with the same period last year.
The AF Marina has a capacity for 394 passengers and around 290 vehicles.
It includes 20 single cabins, 10 double cabins, 58 quadruple cabins, two adapted triple cabins for disabled passengers as well as eight pet friendly cabins.
On board facilities include a restaurant, cafeteria and casino.
The company reported around 660 passenger bookings, 2,000 car bookings, 600 motorcycle bookings and 300 pet reservations ahead of the start of the service.
Manolis said this represented an increase of approximately 800 bookings compared with the same period last year.
Fares remain unchanged, according to the operator, which attributed price stability to advance fuel cost arrangements based on previous pricing levels.
The ferry route will operate a total of 22 round trips between Cyprus and Greece during the summer season.
The final sailing from Piraeus to Limassol is scheduled for September 1.
The Cyprus-Greece ferry service takes approximately 31 hours.
Ticket prices start from around €40 per passenger and bookings are made through official sales channels.
Excavators returned overnight on Thursday to excavate pits for the burial of culled animals in close proximity to residential homes, Kokkinotrimithia community leader Christakis Meleties told the Cyprus Mail on Friday.
“They came back overnight around ten or eleven and continued with excavations for the dead animals, but we resisted,” he said.
The excavations had initially begun in the afternoon of Thursday but were paused after residents protested
According to Meleties, the excavations took place at a 150 metre distance from residential buildings and pose a threat to the health and the water supply in the area.
“It’s at the beginning of the village and it will affect our boreholes,” he said.
As of Friday, no further attempts to proceed with the excavations were reported.
The excavations are the result of ongoing culling measures amid the outbreak of foot and mouth disease on the island, which has led to the killing of thousands of animals so far.
Meanwhile, burial sites for animals culled amid the current foot and mouth (FMD) outbreak are left open with wildlife feeding on the carcasses, a local farmer in Athienou told Alpha television on Friday.
The farmer said he saw many crows and foxes at the areas where hold have been dug for the carcasses which were feeding on the animals, as the pits were left open.
He said that when he asked the operator of the machine that digs the pits why they weren’t covered, the operator said that this was intentional.
“Leave them out, let them get some air, so the pit can hold more, and they’ll decay so we can fit more in,” the operator allegedly said.
Roadworks on Larnaca-Kofinou highway will take place from June 2 to June 9, the public works department said on Friday.
Driving at affected times may be slow or partially restricted. Work will occur on weekdays, excluding Fridays, from 9am to 5:30am the next day.
A 100-metre section of the right lane near the central island, at the exit towards Limassol in the Kofinou area, will be closed in both directions.
The department said the works are necessary for safety improvements and urged drivers to follow temporary road markings and police instructions.
It apologised for any inconvenience caused.
To help you tell a deeper Copilot adoption story—not just who is active, but how they’re using Copilot—the Copilot usage metrics API now classifies each engaged user into an AI adoption phase based on their Copilot product usage over a rolling 28-day window. A new ai_adoption_phase field is available on user-level reports, and a new totals_by_ai_adoption_phase array surfaces per-phase metrics on enterprise- and organization-level reports.
Each engaged user is assigned to one of four phases based on the Copilot surfaces they’ve used on at least two days in the last 28-day window:
Each ai_adoption_phase value includes a version field (starting at v1) so the classification logic can evolve as Copilot’s product surface grows, without breaking historical context.
On the enterprise- and organization-level reports, the new totals_by_ai_adoption_phase array groups engagement and activity metrics by phase, including:
Aggregated metrics report the average per user within each phase rather than the sum.
Join the discussion within GitHub Community.
The post Copilot usage metrics API adds cohorts for AI adoption appeared first on The GitHub Blog.
Hello! Recently, I published the steam page for my game Hill-Z, however a large portion of the art (primarily capsule) was "placeholder" and I believe that led to a negative impact on view to wish list conversion.
I went through and updated all of my art, changed out screenshots, and even re-edited a decent bit of the trailer in an attempt to raise my game's wishlist rate. I'd love if anyone would be willing to check it out and give feedback in the comments below (page link pasted), thank you!
| Hi all, Is there a proven benefit to releasing a demo version of my game on steam before the launch? I’ve been building a game called FeeBay Simulator, it’s an incremental simulation game where you buy sell grade TCG on a parody like eBay game. It’s loaded with funny easter eggs and hidden mechanics. I wasn’t originally planning to release a demo but now I’m thinking I should? Has anyone had good luck releasing a short demo with their game? Has it translated into wishlists? For context this is my current steam store: https://store.steampowered.com/app/3547880 I’m thinking about re-doing the trailer with some updated content and making it a bit faster pace. [link] [comments] |
I’m currently working on a cozy photography game and I want to make different islands where players will go to take photos. I’ve got the foundational pieces in place , player selection , level transitions , etc , and now I’m ready to start building out the islands vs my placeholder planes .
I want to make each island big enough to feel interesting but not massive or too large.
Not asking specifically on what size for my game but if you’ve worked in 3D space and have had terrain levels , how did you decide how big to make your areas ? What factors did you consider ?
Hi all,
I was wondering how popular SFML (Simple and Fast Multimedia Library) is in game development. I find it really nice to use but I never hear any mention of it, so I am curious as to whether people think it is a good or not 😊
Looking for any recommendations anyone might have for books i could pick up regarding programming and gamedev. I'm very new to all this, still learning the basics. My language of choice is C++, though I'm currently undecided as to what game engine I'm going to use, if any.
I recently picked up the C++ Primer Plus from a used book store and have been loving the first few chapters. The lessons have been engaging and the exercises really help me get into the mindset of creating my own programs with little to no guidance.
The book is fantastic, but I want to dedicate some time to learning things that will help specifically with gamedev not just programming. Please let me know if any books come to mind. I'll also take any recommendations for additional books on C or C++.
| Hello there, i am the (solo)developer of this very early alpha (or MVP if you are fancy guy). anyway, the non valueable idea is CO-OP witch is quite a big effort from me because i know a very little about netcoding (multiplayer) i know at a high level what i need in the game developemtn in general (like peer-to-peer, preventive calculation and more shit i dont know if this term even exist in english but in italian maybe). and this is suppsoed to be on top of the currect effort to learn 3D modeling witch is a new word to me (i am using blockbench because seems to be quite easy to understand) the other idea that they dont require much studing but are quite a pain in the ass are: in any case: i am asking you guys if you have like feedback or any idea, i am all ears (or all eyes because i am supposed to read that). Cheers [link] [comments] |
| I wrote this small C89-compatible fixed-size object pool for cases where you want predictable performance and avoid repeated malloc/free calls. It preallocates a block of objects and reuses them in constant time (O(1)) using a simple push/pop style API. The goal is to reduce heap fragmentation and allocation overhead in systems where objects are frequently created and destroyed. Key properties:
Use cases are things like game objects (particles, entities), network buffers, or embedded/real-time systems where allocation cost needs to be stable. What do you guys think? [link] [comments] |
I'm curious if this is a known thing that happens: Two days ago my game had a sudden burst in sales in China, then almost immediately all but one of them asked for a refund. I don't get a lot of sales in China and the game isn't translated into Mandarin. A bit annoying as it brought my refund rate up a few percentage points on it's own.
Any idea why this would happen? Could it be a legit thing where it was mentioned somewhere and everyone hated it or it technically fails to run in China for some reason (in other words something for me to fix)? Or is it potentially something more ominous like a sabotage action on my refund rate?
The game: Trailmarks
Uploaded the demo of my game to itch.io 3 days ago expecting nothing
In 3 days around 500 people played my game, some really good feedbacks and compliments
Some people put my game in their fav game collections
On the comments people talking about which deck is good/bad (my game is roguelike)
3 days ago I was full of uncertainty, now I'm fully motivated again, grinding until Steam Next Fest.
(Not sure if this is the right flair for a resource, but let me know if I need to change it)
Putting this together because submission requirements catch a lot of devs out right before launch.
We've compiled a checklist sourced directly from Valve's official Steamworks documentation - store page, graphical assets, build review, content survey, achievements, Steam Deck verification, and release. Each step links back to the original source so you can verify yourself.
Free to use, no account needed:
ludovite.com/templates/steam-store-submission
Platform requirements do change so always cross-reference with the current Steamworks docs before you submit - this is a guide, not a substitute.
Happy to answer questions if anyone's in the middle of a submission right now.
| Hey r/gamedev 👋 Mocap is expensive. Rokoko suits, OptiTrack rigs, or paying for animation packs add up fast especially for solo devs and small teams. So I built a free, open-source alternative that extracts human motion from any single RGB video and exports it as BVH, ready to drop onto your character. For this demo I tried to compile something fun: took game and movie animation clips and tracked them back out into a BVH file — full circle, gameplay → mocap data you can reuse and clean up in your own pipeline. What it does: - 🎥 Single RGB video in → BVH out (Blender, Unity, Unreal, MotionBuilder) - 👥 Multi-person — each subject exports to its own BVH file automatically - 🦴 Full body + hands, 70 3D keypoints - 🎚 Butterworth temporal smoothing → less jitter to clean up - 🔄 Real-time mode, or offline multi-pass for cleaner results Usage: # Webcam scripts/webcam.sh --from /dev/video0 # Real-time scripts/video.sh --from clip.mp4 --save clip_rendered.mp4 --bvh clip.bvh # Offline (multi-pass, smoother) scripts/offline_video.sh --from clip.mp4 --save clip_rendered.mp4 --bvh clip.bvh Stack (for the engine nerds): Native C++ runtime built on Meta's SAM-3D-Body model via ONNX Runtime + ggml, CUDA-accelerated with CPU fallback. No PyTorch, no Python at inference time there's a plain C API so you can wire it into a Unity/Unreal plugin or your own engine. Honest expectations: it's monocular, so it won't replace a proper mocap stage for hero animation — depth/scale is estimated, and heavy occlusion breaks it. But for previs, NPC background motion, blockout, reference, and indie projects, it's genuinely usable out of the box, and the BVH gives you a clean starting point to keyframe over. [link] [comments] |
Hey all,
I'm making an adventure game, and for years I mapped my puzzle dependencies in OmniGraffle. Great app, but it's a general diagram tool that doesn't understand puzzle logic, it's macOS only, and it isn't cheap. I kept bending it to track what unlocks what, where branches open and collapse, and what the player can work on in parallel.
So I built the thing I actually wanted: something made just for adventure game puzzle charts, and free. It's called DepDoodle.
It keeps that clean OmniGraffle style canvas but with puzzle semantics built in. Puzzle, gate, and reward nodes connected by labeled dependency arrows. One click Auto Layout. A Pacing view that turns your graph into an availability timeline so you can spot linear stretches and pacing pressure. Structural checks for cycles, missing roots, dangling leaves, and missing closers. Groups for acts, characters, or threads. Saves to a plain readable file and exports to PNG, JPG, PDF, and SVG.
It's completely free, open source (GPL 3.0), and runs on Windows, macOS, and Linux.
Download and source: https://github.com/Fulviuus/depdoodle
It's early and I build it alongside my own game, so feedback and feature requests are very welcome. If you're also an ex OmniGraffle puzzle charter, I'd love to hear how it works for you.
Cheers!
Hey everyone,
I’m one of the devs at Pugsy Studios. I wanted to share our Steam journey with our first game, Lost Lullabies, because it taught us a pretty painful lesson:
Wishlists are important, but they are definitely not everything.
We opened the Steam page for Lost Lullabies in April 2024.
At first, it was very small and honestly a bit messy. We started by asking friends, posting in Discord servers, and trying to collect the first 20–30 wishlists in any way we could. We also got a small article on a local gaming news website in our country.
After around two months, we had about 500 wishlists.
It felt good, but it was also way slower than we hoped. Our goal was to enter the October Steam Next Fest with at least 10,000 wishlists.
So we started trying TikTok ads.
We made short videos, ran ads, and posted the same content on Instagram as well. The ads brought a lot of traffic to the Steam page. With around $1,000 spent, the traffic numbers looked promising… but the result was only around 300 wishlists in a month.
Then one morning, we woke up and saw something completely unexpected.
A TikTok creator from Japan had posted about our game.
That single video brought us around 500 wishlists overnight.
That was the first time we really understood how powerful creators could be for a co-op horror game. After that, we started reaching out to creators more seriously.
Some prices shocked us. Some creators were way outside our budget. But while we were still trying to figure out deals, other creators started sharing the game naturally.
By the time October Next Fest arrived, we had around 8,000 wishlists.
Not the 10,000 we wanted, but close enough that we felt we had a real chance.
For Next Fest, we prepared a demo that showed a solid part of the game. On the first night, we played it with a British Twitch streamer we had been talking to. He had around 10K followers.
That night changed everything.
The demo was downloaded more than 60,000 times, and we gained over 50,000 wishlists during Next Fest.
The game was played a lot on YouTube and Twitch. People were calling it a story-driven co-op horror game, some compared it to Phasmophobia, some said it felt different and promising. Of course, there were also negative comments. Some people said it was too hard, and some called it a copycat.
But overall, the reaction was very positive.
Originally, we wanted to launch in November. But after reading all the feedback, we decided to delay the game. We wanted more content, more polish, more detail.
So we moved the Early Access release to March 1st.
From October to March, we kept the game alive as much as we could. It was not an important marketing activities, but we kept doing small things: Reddit posts, TikTok ads, creator outreach, small Twitch activations, and occasional streams.
By March 1st, after almost five months of silence and small marketing efforts, we had around 120,000 wishlists.
At that point, we were confident.
Maybe too confident.
We believed the product was strong. We believed the wishlist number was strong. We believed launch was going to be good.
But we didn’t know we were about to learn a very painful lesson on release day.
Before launch, we also ran a Keymailer campaign. Around 2,000 people requested keys, and we approved about 500 of them.
On top of that, we built a huge list of around 750 YouTubers and Twitch streamers. We wrote personal emails to each of them and sent 3 keys per creator. We sent those emails one week before launch and followed up carefully. Around 10 strong creators replied and said they would play the game.
Then came the thing we didn’t calculate properly:
R.E.P.O.
Their launch was massive.
They completely dominated the space. Even some creators who had confirmed they would play our game ended up playing R.E.P.O instead.
Everyone was playing R.E.P.O.
Until the moment we pressed the release button on March 1, we didn’t fully understand how much this would affect us because their release was maybe 4 days before us. If we had seen it clearly, we probably would have delayed by two months.
Our launch started with 186 CCU. And it never went higher. (Till our full release on November) Every day after that, it slowly went down. The game was good. People who played it often liked it. But it was not visible enough.
Our wishlist conversion was far lower than we expected. It felt like everyone who had money and interest in co-op horror that week was pulled into the R.E.P.O wave.
And honestly, I don’t blame them. Timing is part of the game.
Around the same period, some events in our country also hit us financially as a team. We had invested almost all of our resources into Lost Lullabies for two years.
Yes, the game was selling. But commercially, it was not enough for the kind of long-term support we had planned.
Our dream was to build a detective-style horror game with a strong story and gameplay and keep improving it over time.
But the market showed us something else very clearly:
People wanted to laugh, scream, panic, and have chaotic fun together.
We took a short break as a team. We had to think about what to do next. We could have split up, taken different jobs, and moved on with our lives. But after getting that close, it was really hard to quit. We kept asking each other, “What if we try this?” or “What if we make that?” And eventually, we made a decision.
We would try one more time.
Last year, we quietly started working on a new project. Still co-op. Still horror. But this time, much more comedy-driven. And this time, we decided not to create a long gap between attention and release.
With Lost Lullabies, we had strong momentum in October, but we pushed the release to March. For this new game, we decided to move much faster:
Steam page on May 26.
Next Fest on June 15.
Release on June 24.
Honestly, we were scared to leave even a one-month gap. Because if people show interest, you need to give them the game while that interest is still alive. That is probably the biggest lesson we learned.
For us, the three most important rules now are:
Don’t trust wishlists alone.
Don’t lose momentum after a strong demo or festival.
Study your launch date very, very carefully.
Of course the game still needs to work. The gameplay needs to be fun. The design needs to make sense.
But even a good game can fail to reach its real sales potential if the timing is wrong. I wanted to share this because maybe it can help another small team avoid the same mistake.
Thanks to everyone who read this far. Also, English is not my native language, so sorry if some parts sound a bit strange. I used a translator to explain everything as clearly as I could.
And since it’s tradition, I’ll leave the name of our new game here: OK👍 Boomer
You know those horror games who have amazing character and story or games like undertake
But how? How did they think of this characters and story ? If there any resources to help with this?
Hello everyone,
Today I saw a post about a model made in Blender for a game, but I’m having trouble understanding the topology. To me, it doesn’t look very suitable for PC games because I see a lot of unnecessary vertices.
However, almost everyone in the comments said that the model is suitable for games, so I got confused. Could someone who understands this explain the situation to me?
What I’m wondering is this:
How can this model be considered game-ready despite having so many vertices and such a complex-looking topology?
I’ll leave the link to the post here.
https://www.reddit.com/r/blender/s/C9wLaf8TzT
Thank you.
EDİT: First of all, thank you to everyone who responded. I really learned so much. I'm a bit traditional, I guess. I know that the models generally have few vertices, but I thought they had flaws. You added so much; I'm glad you're here.
Hi all,
after i lost my facebook account without any valid reason like many others, i am a bit lost without the contacts to the groups i had. In a few days my first unity asset will be available (it's currently under review) and i would like to ask if i can get some recommandations where to advertise beside the few options i found ? I do not want to risk getting bans on reddit too, since it's my current only reachout to other people if i have questions.
I know about /unityassets, the unity forum itself (which seems pretty dead though) and i will try to make a new facebook account, but i fear it will be down again very fast.
There are a few large unity and gamedev groups on reddit, though understandingly they don't like cluttering up the feed with such stuff and don't allow such advertising posts.
I would be happy for any good tipps.
If you were to start from scratch (where I am now). Totally new to game development, what engine would you choose, and why?
I am looking into making 2D games only. I have been developing simple mobile apps for a few years now.
Since launching my game's Steam page two months ago, I’ve hit 295 wishlists, 3,927 visits, and 2,005 impressions. My visit to wishlist conversion rate is around 7.5%, which is actually fine, but lately, it's become much harder to drive new traffic to the page.
I’ve tried posting about the game on Reddit and Instagram. While that brought in some initial wishlists, those platforms are becoming less and less effective over time.
What are you guys doing to attract more traffic to your Steam pages when working with a small or zero budget?
Also here is my steam page: https://store.steampowered.com/app/4573970/Syntaris/
Last year I did a couple jams. I was mainly a Unreal Engine dev, so I was in a few discords and finding people was ok. But since I quit Unreal after building my own engine, I'm not sure where to find people for jams and general collaboration. Are there any hidden gems for finding people interested in such endeavors?
I drive a lot for my job and would love to use this time to gain knowledge on how to code. Most game dev podcast ive seen are about game design, and I'm just not there yet. Thank you!
Hi everyone,
Today is a pretty special day for me.
A while ago, I started building a small mobile game called Arrows Burst: Puzzle Escape. Like many indie developers, I was excited to publish it, only to discover that getting Production Access on Google Play as a new developer is a journey of its own.
I had to learn about closed testing, recruit testers, collect feedback, fix issues, improve the game, and keep iterating. There were moments when I wasn't sure if I would get enough testers or meet all the requirements, but I kept going.
What surprised me the most was how supportive the developer community can be. Many people took time out of their day to test the game, provide feedback, report bugs, and even leave reviews. Most of them had nothing to gain from helping me, yet they did.
Today, I received Production Access, and my game is officially live on Google Play.
For experienced developers, this might seem like a small milestone, but for me, it feels huge. It's the first time something I built can be downloaded by anyone around the world.
I wanted to share this not to advertise my game, but to thank the developer communities that helped me get here and to encourage anyone currently struggling with testing requirements, rejections, or production access.
Keep going. The process can be frustrating, but the feeling when you finally get approved makes it worth it.
Thank you to everyone who helped along the way. ❤️
I'd also love to hear about your own first app/game launch experiences and any lessons you learned after going live.
I was just curious people keep saying sqlc doesn't work well for certain kind of things - I actually quite liked it, In long run is it good option or I should think of other and what are kind of things it can't do?
When I was switching from Python to Go, I searched for alternatives to sqlalchemy and alembic (python libs) for writing queries and generating migration files from Go structs. But everything I came across was either too low-level and didn't allow for automatic migration generation from structs, or too close to an ORM with a ton of hidden logic when generating queries, and an inconvenient interface for writing complex queries.
So I decided to write my own query builder that would allow explicit queries using Go structures as representations of SQL tables. Currently, it supports DML and DDL, and in the future, I plan to add automatic generation of migration files that will be derived from the difference between the current database schema and the registered Go structures.
If anyone is interested in my project, I would be very grateful for feedback, including examples of queries where my library has helped, and, in particular, what is missing or what could be changed.
Repo: https://github.com/SennovE/qrafter
Docs: https://pkg.go.dev/github.com/SennovE/qrafter
I've been running YAP in production for a few years to package software across several distros. Cleaned it up enough to share.
You write one PKGBUILD and it builds native packages for Debian, Fedora, Alpine, Arch and others. Builds run in Docker/Podman containers.
The part that might interest this sub: it doesn't shell out to apt/dpkg/dnf/apk for metadata. It's all reimplemented in Go:
Package installs go into a separate SQLite state DB instead of the system dpkg/rpm databases, which is what makes it usable inside throwaway build containers.
Other things it does:
runs on Linux and macOS (on a Mac it still produces Linux packages via containers)
yap build ubuntu-22.04 ./myproject yap build yap build --target-arch arm64 --sign --sbom ./myproject
Go, GPLv3. https://github.com/M0Rf30/yap
Shipped chrono v0.1.0, a Go library for the four distributed-systems clock primitives (Lamport, vector, HLC, TrueTime-style), with a proofs/ package whose entire purpose is to reproduce the failure scenarios from the original papers as runnable Go tests.
We all know that physical time is not reliable in distributed systems. Wall clocks drift. NTP can step us backward by hundreds of ms. Two machines on the same NTP server disagree by tens of ms at any given moment. If we sort events by time.Now(), then one correction can put our audit log in the wrong order.
The problem is the we won't know this until after months when someone files a bug about a record that "obviously" predates another one.
Plenty of libraries implement Lamport, vector clocks, HLCs, and bounded-uncertainty intervals, but almost none show how they actually handle the failures the papers are warning about. That's what the proofs/ is for. There are 5 tests, each one a reproduction of a specific scenario.
The cleanest one to point at is the NTP backward step: take the same events, sort them by wall clock and by HLC, watch the wall-clock sort land in the wrong order while the HLC sort holds up.
There are no Raft/Paxos, no CRDT primitives, no GPS source for TrueTime. Different libraries, different opinions. Trying to do all of those in one repo will result in a full-blown framework, not a lib.
There is only stdlib in the core. MIT licensed. Benchmarks, an API tour, and the comparison table all are present in the README.
Check it here: Chrono GitHub
P.S. I would be very keen for the feedback on what scenario I missed. 5 was the canonical set as I read it, but there's a Dynamo or CockroachDB or etcd failure mode I haven't reproduced yet.
Wrote up a deep dive on going from 0.75 GB/s to 49 GB/s scanning a 4 GB file in Go on Linux: a 66× speedup over the initial os.ReadFile. Covers chunked reads, mmap (with all the page-fault footguns), parallel pread, hand-written AVX2 asm, and Go 1.26's new simd/archsimd.
package arena type MemoryArena[T any] struct { buffer []T offset uintptr } func NewMemoryArena[T any](size int) *MemoryArena[T] { return &MemoryArena[T]{ buffer: make([]T, size), offset: 0, } } func (memoryarena *MemoryArena[T]) Alloc(obj T) *T { if memoryarena.offset >= uintptr(len(memoryarena.buffer)) { panic("Not enough space") } memoryarena.buffer[memoryarena.offset] = obj allocated := &memoryarena.buffer[memoryarena.offset] memoryarena.offset++ return allocated } func (memoryarena *MemoryArena[T]) Reset() { memoryarena.offset = 0 var zero T for i := range memoryarena.buffer { memoryarena.buffer[i] = zero } } Hi, I've decided to not use AI and implemented simple memory arena where buffer is slice of generic type, I do realize that memory arena can be implemented using bytes and probably bytes is the best case scenario. I am looking for feedback, what should I add next? Maybe AllocArray or mutex?
| submitted by /u/lazyhawk20 [link] [comments] |
| submitted by /u/Traditional-Ear-4884 [link] [comments] |
Just a quick updated about progress on `wgsl-rs` including generics support and support for "extensions".
i was banned i rust for cheating when i have a pc that can barely even run rust i hadnt played rust for like a month or so and when i logged back onto my steam acc and hit play on rust it says i had been game banned for cheating when i literally didnt. steam wont even give me refund because i have 20 bours on the game and i tried to get a ban appeal then the
moderator said this...
| Owen (Facepunch Studios) May 20, 2026, 14:43 GMT+1 Hello **********, Unfortunately the ban is permanent even if your account was hijacked at the time. While we understand this can be frustrating we must have a zero tolerance policy for cheating to foster a fair game that players will enjoy. In order for a zero tolerance policy to be effective we must hold users responsible for the security of their account. When using Steam, please see the Account Security Recommendations FAQ to secure your account from attackers. Making a new Steam account after being game banned will result in that account being banned as well. We do not condone ban evasion. |
|---|
please help me guys get me in touch with a moderator or something this is the first game that i bought
Working on a narrative roguelite. The codebase is growing and I keep hitting walls with the borrow checker, especially around systems that need shared access to world state.
So far my approach: split everything into small ECS systems through Bevy. Each system only borrows what it needs. Works ok but I end up with a ton of tiny systems and sometimes the ordering gets complicated.
Tried using events as a buffer between systems that would otherwise need to share state. That helped but adds indirection.
Are there patterns I am missing? I know about interior mutability (RefCell, Mutex) but those feel like fighting the language. Is there a more idiomatic way to handle shared mutable game state that does not involve wrapping everything in locks?
Been building a narrative roguelite with Rust/Bevy. One unexpected benefit: the strict compiler is perfect for AI assisted development.
I use AI to generate a lot of my game logic code. With TypeScript the AI would fix one thing and silently break another. Runtime bugs everywhere, and the AI kept making the same mistakes in new code. Super frustrating.
Moved to Rust and it just stopped happening. The AI makes suggestions, the compiler rejects the bad ones, I iterate. The feedback loop is way tighter.
Bevy's ECS was also a great fit. Game is logic only right now (no rendering), so being able to build everything as pure system transforms without worrying about visuals was huge.
Anyone else using Rust for AI heavy workflows? The compiler as a safety net for generated code has been a game changer.
Dev log: https://old.reddit.com/r/aigamedev/comments/1tqrbd9/
Check out this cool pet project of mine. If you live in the terminal and like RPGs you’ll love this!
This is my library, got a new release with significantly expanded the API of the rust crate and 100% convenient windows support (both / and \ works equally on windows) and more SIMD
So I decided to share it here just in case you are looking for the fastest glob implementation crate in the rust ecosystem.
Here are summarized performance overview of the file walking timings on the benchmarked 100k repo folder (linux kernel) - run it yourself it's criterion benchmark inside a rust/ folder
The reason zlob is faster is that is that is written in zig, uses a bunch of platform specific optimization (raw batching syscalls) and delegates all the matching to the SIMD-core engine *and* has a much more advanced gitignore parsing support than simply collecting a Vec<IgnoreRule> and applying them one by one.
all of this while being 100% compatible to glibc, rust's glob, bash, and java script implementation (controlled by flags)
So, recently i got unemployed, and i wanted to tackle a problem i had for a really long time that is efficiently managing states across different processes. I'm a micro services guy, and i really like to build my functionalities modular so i can plug in or remove whatever i want without breaking all the other moving pieces. So i did what every sane person would, and decided to build a fully lock-free SHM Arena from scratch, using a few novel ideas i had to handle concurrent allocation and coalescing contention.
The repo is still in early stages of development, but since i already have a clear scope of what i want to do, i decided to post it to gather some feedback on the project as i go. Maybe someone can catch a flaw in my logic i didn't perceive before, so any comments are welcome... even the destructive ones, come fight me bro.
Yo so, I made this db manager trying to keep it clean, nice and simple.
Ofc I made it recently so it lacks polish and features so I figured I'd put it out there and get feedback.
My main reason for it existing is having something that's lightweight, looks good, without subscriptions, ads or any other bs.
It comes with an MCP server so your AI slave can do work in your place and you can revert its actions if it deletes stuff.
https://github.com/Hoteira/basedly
It mainly uses rust + Tauri (React not Yew, may change down the line). For any detail ask in the comment.
Hi everyone,
I’ve been building Talos-XII, a single-binary ML playground written from scratch in pure Rust. It actually started as a gacha simulation/RL project, but I ended up falling down the rabbit hole and building a custom deep-learning runtime.
It now features a pure Rust Tensor/autograd implementation, DQN/PPO training, optional CUDA kernels, and embedded Python scripting via PyO3.
(Full disclosure: I used AI tools to help write some of the boilerplate/code, but I own the architecture and core implementation. It's still super early and rough, so expect some jank!)
The main experiment: ACHF
The core thing I want feedback on is a custom layer-side acceleration mechanism I'm calling ACHF (Adaptive Cache-aware Hyper-Connections).
Basically, I noticed some of my paths were bottlenecked by cache/memory bandwidth rather than pure FLOPs. Dense matrices were doing too much unnecessary work. Instead of rewriting the whole model architecture, ACHF acts as a drop-in modifier that does a few things on the fly:
Low-rank projection: Swaps out dense operators for reduced-rank projections to save on memory traffic, provided the residual output stays close enough.
Gating & Pruning: Dynamically suppresses low-contribution channels during training (with a g_min floor to prevent collapse). During inference, it uses actual sparse execution for pruned weights instead of just silently masking a dense matrix.
Runtime Adaptation: It keeps an EMA of latency across cached/sparse/dense paths and biases routing decisions based on actual hardware performance rather than static assumptions.
Right now, it selectively applies to FFNs, attention layers, and DQN paths. I'm definitely not claiming this is a proven, general-purpose optimizer—it's strictly a systems experiment to see if adaptive, cache-aware routing actually helps in constrained workloads.
Embedded Python Scripting
I also wired up PyO3 so you can run custom Python scripts directly inside the Rust binary.
To be clear, this isn't a wrapper around PyTorch or NumPy. The exposed talos_xii Python module talks directly to the project’s own Rust-native Tensor and autograd engine. No external ML dependencies are required.
You can run it like this:
cargo run --features python -- python examples/python/autograd_minimal.py -- 1.0 And the script itself looks like ordinary Python code:
import sys import talos_xii as tx target_value = float(sys.argv[1]) if len(sys.argv) > 1 else 0.0 x = tx.tensor([1.0, 2.0], [1, 2]) w = tx.tensor([0.25, -0.5], [2, 1]) target = tx.tensor([target_value], [1, 1]) prediction = x.matmul(w) + 0.1 loss = prediction.mse_loss(target) loss.backward() print("prediction:", prediction.item()) print("loss:", loss.item()) print("grad_w:", w.grad()) (The embedded module currently supports standard ops like tx.zeros, tx.randn, matmul, mse_loss, backward, etc.)
Where I need help
I’m posting this early because I want to make sure I'm not over-engineering the wrong things. I'd especially appreciate feedback on:
Does the ACHF concept actually make sense from a systems/ML perspective, or am I reinventing the wheel?
What specific benchmarks would make the acceleration claims credible?
Is an embedded Python interface even useful for a Rust runtime, or should I just focus on the Rust API?
What’s the most glaring missing piece for you? (Slicing, optimizers, more CUDA ops?)
Would love to hear your thoughts or get roasted on the implementation details!
Hi,
I've been building Keel, a statically typed interpreted programming language written in Rust (currently in alpha), that tries to combine Rust-like syntax with Python's ease of use.
Behind the scenes, it's a register machine with NaN boxing and a mark-and-sweep GC for arrays and strings. It can also call C functions from dynamic libraries through libffi. The compiler does constant folding, constant propagation, full type inference (without annotations), and monomorphization. In benchmarks it's roughly 2-10x faster than Python and competitive with LuaJIT (-joff).
Being still in active development, the standard library is quite small.
Any feedback is appreciated, and I'd be more than happy to answer questions!
Repo: https://github.com/horacehoff/keel
Website: https://keel-lang.com
Try it in your browser: https://keel-lang.com/playground
Disclaimer: I previously used AI to write some comments, which I've since removed and rewritten myself. All of the code and architecture is designed and written by me.
I’ve been a Rust programmer for several years. I love the language but one rough area has always been macros. I have a particular question though about why scoping works the way it does with macros.
In order to export a macro for use, you must do one of two things:
Why are the scoping rules so cursed? Nothing else in the language works this way. Why can’t you just do `pub macro_rules! my_macro` …
I know Macros 2.0 are supposed to fix this but that feature basically looks stalled and I don’t have high hopes it’ll ever be finished (like so many unstable features).
This release includes two major new commands: zb doctor for diagnosing and repairing local state, and zb upgrade for upgrading installed packages. It also improves Linux bottle handling, Python package linking, migration behavior, formula alias resolution, CLI help text, and release stability.
Apologies for the delay and recent period of inactivity. Thanks for sticking with the project while we got this release together.
bash curl -fsSL https://zerobrew.rs/install | bash
For those unfamiliar, zerobrew is a alternative to Homebrew and brings uv-style architecture to Homebrew packages on macOS and Linux.
It is not a replacement or competitor to Homebrew, in fact, we use some of their code. We just figured that we could develop a much faster option for installing packages on your machine.
Thanks! Issues are welcome and encouraged.
A note on AI usage in the project: Early on, before I joined as a maintainer, this was largely developed with the assistance of LLMs. Since then, two things are worth noting: 1. I have been one of the sole contributors, and I still handwrite most of my code. If I don't, it's clear in the PR desc why or how AI was used. 2. I have extended this to external contributors. Even if someone does open a PR and opts to use LLMs for it, they must disclose that they did and how. On top of that, each line is still reviewed by me.
We also instantly close any PR that is either clearly slop, or a drive-by 1k+ LoC diff from new and/or infrequent contributor.
I don't have much interest in defending or not defending the use of AI. If it was up to me, I'd ban it from the repo. But I do not own this project, and also whether I like it or not, AI is going to find its way into the codebase. The best thing I can do is disclose the measures we take to alleviate this and manually, and humanly review code changes.
After managing dozens of servers across multiple environments, I got tired of maintaining mental maps of jump hosts, Wallix bastions, and tunnel configs. So I wrote susshi — a terminal UI for organizing and launching SSH sessions.
What it does:
- Hierarchical groups/environments (dev, staging, prod…)
- Multi-hop jump chains, Wallix bastion auth flow, tunnels, SCP transfers
- Catppuccin-themed Ratatui UI
- YAML inventory with !include, variable interpolation, and inherited settings
- Import from ~/.ssh/config
Interesting Rust bits:
- Used crossterm + ratatui for the TUI, ssh2 for SCP, nix for forkpty (Unix-only, behind #[cfg(unix)])
- anyhow/thiserror throughout — zero unwrap() in production code
- Cross-compiles to musl, Windows, macOS (aarch64 included)
Happy to answer questions about the architecture or any Rust-specific decisions.
GitHub: https://github.com/yatoub/susshi | cargo install susshi
Hi! We published this post yesterday about Roto, a statically-typed and compiled scripting language for Rust applications. It's been public for a year now and a lot has happened since we first published it!
Feel free to ask me about it!
Writing self-referential structs in Rust is a complete nightmare; the borrow checker won't let you do it natively. Testing three common workarounds for this pattern. Which approach do you actually like?
Version 1: Unsafe & Raw Pointers
No dependencies; total control but requires manual safety audits.
struct SelfRef { data: String, slice: *const str, _pin: std::marker::PhantomPinned, } Version 2: Index Offsets
100% safe code; avoids lifetime issues entirely by storing ranges.
struct IndexRef { data: String, slice_range: std::ops::Range<usize>, } Version 3: Macro Crates (ouroboros)
Clean syntax; abstracts the pain away but introduces a heavy dependency.
#[ouroboros::self_referencing] struct MacroRef { data: String, #[borrowed] slice: &str, } Offsets feel like a workaround that loses type expressiveness; raw pointers are an open invitation for UB. Is using a macro crate the only sane path forward; or do you just refactor the data flow to avoid this entirely?
Now tell me which one is for you?
Repo: https://github.com/RustedBytes/manifold-knn
Currently I am creating software using egui to view point clouds (PCD, PLY, etc) and for some operations integrated manifold-knn backend instead of kd-tree's. This is an implementation of https://arxiv.org/html/2605.02224v1 article.
Speed: on large clouds it's about 2x speedup. Hope anyone else will find this useful.
Ethics:
- AI usage: convert paper to code using Codex 5.5 Pro and polishing the speed using Gemini 3.5