Friday, April 24, 2026
1c1ac5f8-6ad4-4f4a-b712-357f0efcdece
| Summary | ⛅️ Overcast from afternoon until night. |
|---|---|
| Temperature Range | 13°C to 21°C (55°F to 69°F) |
| Feels Like | Low: 53°F | High: 74°F |
| Humidity | 79% |
| Wind | 11 km/h (7 mph), Direction: 270° |
| Precipitation | Probability: 0%, Type: No precipitation expected |
| Sunrise / Sunset | 🌅 06:05 AM / 🌇 07:26 PM |
| Moon Phase | Waxing Gibbous (26%) |
| Cloud Cover | 58% |
| Pressure | 1012.25 hPa |
| Dew Point | 56.29°F |
| Visibility | 5.75 miles |
A recent survey by primary school teachers’ union Poed, published on Thursday, found that 95 per cent of the 1,017 teachers who participated reported an increase in incidents of school violence and delinquency.
“The findings unfortunately confirm the particularly worrying scale that school violence and delinquency have reached,” Poed said.
In a statement, the union described the rise in violent and delinquent behaviour in recent years as “one of the most serious challenges that public schools are called upon to manage”.
According to the survey, 55 per cent of teachers do not always feel safe at work, while 53 per cent believe that school is not always a safe environment for children.
While Poed acknowledged that some preventive measures and management tools have been introduced, it stressed that these are insufficient.
“Children remain without support for long periods, the quality of education is undermined, and teachers are called upon daily to manage such incidents without substantial or timely support, leading to burnout,” the union said.
The survey found that verbal violence is the most common form of student behaviour, reported by 63 per cent of teachers, followed by physical violence (59 per cent), vandalism (31 per cent), and online violence (13 per cent).
It also highlighted concerning levels of violence directed at teachers. Around 29 per cent reported inappropriate behaviour by students, 12 per cent reported threats of physical violence, and 9 per cent reported actual physical violence against teachers.
Poed called on the government to take responsibility and invest in “targeted policies and substantive measures” to support public schools, stressing that the issue “cannot be addressed through piecemeal interventions”.
“The effective prevention and management of this phenomenon requires a holistic and systematic approach, with timely and substantial intervention by all relevant services,” it said.
The union presented an eight-pillar proposal, including upgrading school environments and operations, promoting social and emotional skills, providing targeted support for vulnerable students, modernising legislation, strengthening support structures, enhancing cooperation mechanisms, and investing in teacher training and professional development.
It also called for measures to reinforce the status of teachers.
“Every child has the right to quality education in a safe environment that respects their needs and particularities. Every teacher has the right to work in conditions that allow them to teach and inspire,” Poed concluded.
Ukrainian president Volodymyr Zelenskiy on Thursday predicted stronger bilateral ties between Kiev and Nicosia, adding that Cyprus has stood by Ukraine’s side since the start of Cyprus’ presidency of the European Council.
Speaking to journalists at the Ayia Napa marina, the venue for the informal EU Council, Zelenskiy called for European production of critical weapons systems and addressed Ukraine’s broader defence needs.
The Ukrainian president was holding talks with EU leaders in Cyprus after Hungary lifted its veto power on a €90 billion loan for wartorn Ukraine.
On arriving in Ayia Napa, the Ukrainian leader – invited to the council as a special guest – was asked how he feels to be in Cyprus, a partitioned country.
Zelenskiy appeared to sidestep the question, replying that “Cyprus has always supported us, Nikos Christodoulides supports us, and I’m very grateful…”
He added: “Now there is a war, and we are focusing on the war, not on the economy.”
Earlier in the day, Zelenskiy held a meeting in Nicosia with President of the European Council Antonio Costa and European Commission President Ursula von der Leyen.
In a joint statement later, the three noted the need to increase support for Ukraine, the country’s bid for EU membership, and the next steps in relation to sanctions on Russia.
The three called for the launch of EU-Ukraine membership talks without delay.
Their statement also welcomed the approval of the €90 billion loan to Ukraine for the years 2026 and 2027.
The funds will cover Kiev’s pressing fiscal and military needs. Disbursement of the first tranche is expected sometime during the second quarter of this year.
Attaining ‘strategic and energy autonomy’ for the European Union headlined the agenda of the talks during the informal EU Council that got underway in Cyprus on Thursday.
“Now is the time, given regional and global developments, to give substance to our common goal for achieving strategic autonomy for the EU,” President Nikos Christodoulides said in his first remarks to the media.
The two-day event, wrapping up on Friday, brings together the EU heads of state of state or government, to discuss pressing matters brought to the fore by current geopolitical developments, primarily the war in the Persian Gulf.
It is the first informal EU Council hosted by Cyprus since the island formally acceded to the bloc in 2004. Informal councils are convened outside formal summit structures to discuss strategic priorities and geopolitical challenges in an open, less protocol-heavy setting. Unlike formal meetings, they do not adopt legal acts.
On the opening day, the gathering took place at the Ayia Napa marina, moving to the Filoxenia conference centre in Nicosia on Friday.
Cyprus is playing host to the leaders of 24 EU states, plus the President of the European Council Antonio Costa, and President of the European Commission Ursula von der Leyen. Also attending is Ukrainian President Volodymyr Zelenskiy.
In his own statement to the press ahead of the meeting of the council, Costa said:
“Today is a very good day. We have taken two very important steps in order to strengthen Ukraine: delivering on our €90 billion loan, in order to support Ukraine for this year and next year, to satisfy their main needs for financial support and to defend themselves against Russian aggression; and, the second step, increasing the pressure on Russia, with our 20th package of sanctions.”
Costa added: “Now it’s time to look forward and to prepare the next step. And the next step is to open formally the first clusters of negotiations for the European accession of Ukraine to the European Union.”
Foreign leaders began arriving at the Ayia Napa venue around 6.30pm, greeted there by host President Christodoulides.
Each made brief statements to the press on their arrival, followed by the ‘family photo’ at around 7.30pm. Next a discussion took place with Zelenskiy. The working dinner was scheduled to start at 8.15pm.
For his part, Christodoulides said two issues would dominate the proceedings.
Strengthening relations with neighbouring states would be the first issue.
According to Christodoulides, on Friday the informal council would share views about the situation in the region, “more so after the announcement of the Pact for the Mediterranean where, through specific actions, we upgrade our relations in the region.”
Adopted in October 2025, the Pact for the Mediterranean is the EU’s strategic framework to deepen cooperation with Southern Neighborhood partners, focusing on economic integration, security, and sustainable development. It aims to create a ‘Common Mediterranean Space’ with over 100 projects, including renewable energy and digital infrastructure.
The second issue, said the president, concerns “European autonomy”, consisting of two elements: energy and the so-called Energy Union, and Article 42.7 of the Treaty on European Union.
Article 42.7 is a mutual defence clause requiring EU member states to provide aid and assistance by all means in their power if another member state is the victim of armed aggression on its territory. Introduced in 2009, it obliges assistance while respecting the specific security policies of certain members – for example, neutrality or Nato commitments.
Christodoulides explained what EU leaders would discuss in this respect:
“What happens when a state activates this article?
“For instance, will that take into consideration the region in which that state is located? Which states can provide assistance immediately, what type of assistance will be needed – as this depends on the capabilities of each state and the type of threat it faces.”
The president stressed that mutual defence assistance is not a matter concerning Cyprus alone. He recalled that France first invoked the article back in 2016, in the wake of the terrorist attacks in Paris.
The matter resurfaced after a drone attack against the British bases in Akrotiri on March 1. Additional drones launched on March 1 and 4 toward Cyprus were intercepted. The attacks occurred during the broader war between Iran and both Israel and the United States.
“What we need is to give substance to this article and forge an operational plan,” added Christodoulides.
Regarding the war in the Gulf, the president said “we cannot achieve de-escalation without the active participation of the EU.”
The House plenum on Thursday accepted four referrals made by the president, and rejected one, relating to laws passed previously concerning property foreclosures and the rights of debtors.
The plenary was voting on the five items – a series of laws passed by parliament on April 6, which President Nikos Christodoulides later vetoed, referring them back to the legislature with recommendations for changes.
The president had cited various objections – such as non-compliance with the constitution, legal ambiguity, and possible adverse impacts on the economy and the banking sector.
In remarks on the House floor, opposition MPs dismissed these as performative – namely that the government doesn’t really have legal objections but that it is simply siding with the banks, to the detriment of distressed borrowers at risk of losing their primary residence.
Nevertheless, to prevent a long drawn-out dispute in the courts if they rejected the president’s referrals, the majority of lawmakers accepted them.
Earlier in the day, MPs also railed against the attorney-general’s office, which had codified the president’s objections.
They accused the AG’s office of effectively “ruling the country”.
Of the five bills which the president refused to sign off on, referring them back to parliament, the plenum accepted four of the referrals.
These were: bankruptcy laws which parliament had amended in April; credit contracts for consumers relating to residential immovable property; laws relating to the liberalisation of the interest rate; and the Courts of Justice Law.
On the fifth item – the Immovable Property (Transfer and Mortgage) Law – MPs stuck to their guns, rejecting the president’s referral. In other words, they insisted on the law they had earlier amended.
The Immovable Property Law governs the transfer of title, registration, and the procedures for foreclosure on mortgaged property, including recent 2025 amendments addressing “trapped buyers”.
The changes introduced in April – many of them now undone by the president’s referrals – included the appointing of judges for financial disputes, extending deadlines, scrapping the demand for additional collateral, the right to appeal the sale of property in cases of disputed debt or unfair loan clauses, and the cancellation of remaining debt when the house is sold for less than the mortgage.
They also provided for a cap on the interest rate, limiting the liability of guarantors to the initial loan, setting a minimum sale price of 50 per cent of the property’s value in auctions, suspending the sale of residences up to €350,000 until August, and obliging the creditor to first take measures against the debtor before turning to the guarantors.
The House approved new refugee legislation on Thursday, establishing a revised legal framework for asylum procedures in line with the EU migration pact, with the law set to take force on June 12.
The bill was passed with 35 votes in favour and 14 abstentions, introducing structural changes to how applications for international protection are processed, alongside provisions aimed at accelerating procedures, strengthening oversight and expanding safeguards for vulnerable groups.
In its statement issued following the legislation’s approval, the deputy migration ministry said the law “incorporates the new European framework for immigration and asylum into the Cypriot legal order” and creates “a more functional, reliable and resilient system”.
Under the new framework, a screening process at the borders will be introduced, with applications examined within designated reception centres.
Authorities will also be able to prioritise certain cases and apply accelerated procedures under defined conditions.
Digital communication with applicants will be formalised, including the use of email, while interviews will involve mandatory audio recording.
The legislation establishes the human rights commission as an independent monitoring mechanism for fundamental rights during border procedures.
It also introduces free legal guidance at the administrative stage and legal representation during appeals.
Provisions are included to regulate reception conditions, family reunification and the protection of minors and other vulnerable individuals, while addressing what officials described as legislative gaps concerning family unity in cases formed after an applicant’s arrival.
The law further allows asylum applicants access to the labour market within six months.
The ministry said the legislation “introduces faster asylum procedures, shorter timelines, stricter border controls, as well as enhanced provisions for minors and vulnerable persons”, adding that it provides the legal basis for Cyprus to access “solidarity mechanisms, technical assistance and tools” under the EU framework.
During the parliamentary debate, Interior committee chairman Aristos Damianou said the legislation incorporates the European pact through “binding regulations and directives”, while expressing reservations over protection standards.
He said, “the levels of protection it provides are lower than international law” and argued that “European solidarity is not substantially strengthened”.
Independent MP Alexandra Attalides said procedural acceleration “cannot replace legality nor cancel the humanitarian dimension”, adding that Cyprus “must operate on the basis of law and respect for people and not fear”.
Ecologists’ leader Stavros Papadouris criticised the legislative process, stating parliament was asked to examine “an extensive and complex legislative text in just two sessions”.
Dipa MP George Penintaex said the bill “modernises and streamlines asylum procedures”, adding that it strengthens “the protection of the rights of applicants, especially vulnerable groups”.
Diko MP Panikos Leonidou described the law as “one of the most important reforms of recent years in the field of immigration and asylum”, linking it to the need for “a ready and functional system” as a frontline state.
Akel MP Marina Nikolaou said the framework “does not substantially solve the problem”, citing concerns over unequal burden-sharing among EU member states.
Disy MP Nikos Sykas said the legislation forms part of a broader strategy to improve migration management, adding that it contributes to “shaping an effective national framework and simplifying procedures”.
Amendments were adopted during the session, including a provision requiring consultation with local authorities for new housing areas, while other proposals, including one on publishing NGO funding data, were rejected.
The passage of the legislation is linked to €190 million in EU funding for migration management and is intended to support a more coordinated and comprehensive system.
The ministry said it would continue preparations “with seriousness and dedication” for full implementation, aiming to ensure the system “safeguards the interests of the Republic of Cyprus and serves the principles and values of the European Union”.
Surplus electricity generated by household solar panel systems will no longer be written off following a unanimous vote in parliament on Thursday.
The decision partially accepts a referral by President Nikos Christodoulides concerning amendments to the law on promoting renewable energy sources, with MPs modifying provisions to address concerns over constitutionality and separation of powers.
Under the approved framework, excess energy produced by households “will not be deleted” and will instead be retained until the cabinet sets out a compensation mechanism.
House energy committee chair and Disy MP Kyriakos Hadjiyiannis said the committee opted for partial acceptance of the referral, stressing that “the main change is that surplus energy produced by household photovoltaics will not be deleted until the council of ministers decides.”
Dipa MP Alekos Tryfonidis said the move ensures that accumulated energy credits are preserved, expressing optimism that decisions will be taken “in favour of consumers”.
Diko MP Michalis Yiacoumi described the outcome as addressing “a clear injustice” affecting around 100,000 households, adding that previously erased surpluses “will no longer be reduced to zero”.
Akel MP Costas Costa criticised the broader handling of renewable energy, stating that cut-offs of photovoltaic production “have become the norm” despite earlier assurances they would be a last resort.
He said the decision ensures “no energy reserves will be reduced to zero” and that responsibility for resolving the issue now shifts to the government.
Independent MP Irene Charalambides pointed to earlier commitments that no such reductions would occur, saying households that invested in solar systems continue to face high electricity bills due to “inadequate management”.
Ecologists MP Charalambos Theopemptou said the issue reflects broader structural challenges, arguing that “by 2030 all buildings should have photovoltaics” while stressing the need for solutions to absorb renewable energy into the grid.
The original referral concerned an amending law that would have allowed the method of compensating surplus energy to be set by decree, alongside the reintroduction of a support scheme for self-production.
MPs accepted certain elements of the president’s objections – such as raising government expenditure or interference of the legislature with the functions of the executive branch of government – while preserving the core aim of preventing the loss of household-generated energy.
The vote comes amid public reaction to recent electricity bills in which accumulated photovoltaic credits were reduced to zero, prompting complaints from households and raising pressure on authorities to clarify the regulatory framework governing renewable energy use and compensation.
Plenum on Thursday rejected a referral by President Nikos Christodoulides concerning legislation on renewable energy sources (RES), which includes a ban on installations on fertile agricultural land.
The vote saw 15 MPs in favour of accepting the referral and 26 against.
The referral concerned a provision prohibiting RES projects on fertile or irrigated land, land consolidation areas and protected zones.
The executive branch had argued that the restriction could limit the expansion of renewables and potentially jeopardise Cyprus’ 2030 energy targets. It also raised concerns over separation of powers, property rights and ambiguity in the legislation.
Chair of the House agriculture committee and Akel MP, Yiannakis Gavriel, expressed regret over the referral, noting that the law had been unanimously approved by parliament to put an end to what he described as “anarchy” in the installation of RES projects on fertile agricultural land.
He accused the government of maintaining an uncontrolled situation and of “inventing reasons” to serve specific interests, rejecting the referral outright.
Greens MP Charalambos Theopemptou pointed to Cyprus’ obligation since 2023 to designate areas suitable for renewable energy development, highlighting delays, lack of coordination between ministries and limited transparency in licensing procedures.
Independent MP Costis Efstathiou said parliament intervenes when the state fails to regulate key issues, dismissing claims that the law undermines renewable energy development. He stressed that growth “cannot take place without limits” and described the executive’s objections as unfounded.
MP Alexandra Attalides argued that property rights do not automatically equate to development rights, noting pressures in Cyprus to exploit private land – a practice she said is not common internationally.
Dipa MP Alekos Tryfonides said he supports Akel’s position, adding that many of the restrictions on RES development on agricultural land were already in place.
On the other hand, Didy MP Onoufrios Koulla said that while the legislation has good intentions, a blanket ban creates problems as it extends to private land and may prevent farmers from installing photovoltaic systems.
He called for a more balanced approach to restrictions and confirmed he would support the president’s referral.
Cyprus “worked tirelessly” to ensure the release of €90 billion worth of European Union loans to Ukraine, Finance Minister Makis Keravnos said on Thursday after the Council of the EU approved all the remaining legislation to allow for the funds’ disbursement.
“Today, the council approved the final element needed to allow for the disbursement of the €90bn loan for Ukraine. The Cyprus presidency has worked tirelessly to ensure all elements needed for the loan were in place,” he said.
He added that the disbursement of the funds will “start flowing as soon as possible” and thus provide “vital support for Ukraine’s most pressing budgetary needs”.
“The EU remains steadfast in its support for Ukraine’s sovereignty and territorial integrity,” he said.
The laws approved on Thursday amounted to changes to the EU’s multiannual financial framework – the bloc’s budget for the period covering the years between 2021 and 2027 – allowing the EU to finance the loan by borrowing on capital markets and to guarantee that budget through what the council described as “EU budget headroom”.
With the legislation now having been approved, the Ukrainian government will begin to receive funds before the end of June at the latest.
The council said that the loans “will help cover the country’s most urgent budgetary and defence industrial capacity needs” this year and next year, and that the money will be allocated “within a robust and conditional framework”.
“Funding will be linked to strict conditions on Ukraine’s side such as adherence to the rule of law, including the fight against corruption,” he said.
A third of the €90bn will, according to the council, constitute “macroeconomic support for Ukraine”, which “can be used to address Ukraine’s most urgent budgetary needs”.
It said that the remaining two thirds will be allocated to bolstering “Ukraine’s capacity to invest in defence industrial capacities, including procurement of defence products”.
The funding, it said “will give Ukraine crucial and timely access to defence products from the defence industries” in its own country, as well as in EU member states, European Free Trade Area (Efta) countries, and other allied countries.
On this matter, the EU did stipulate that Ukraine can only spend the funds on defence hardware from countries which have either signed bilateral agreements with the EU under the €150bn Security Action for Europe (Safe) programme, or which have “demonstrated fulfilment of specific conditions and commitments”.
It went on to say that disbursements “will be made accessible in line with Ukraine’s financing needs”, with the timing of those disbursements to be determined by the Ukrainian government, based on a financing strategy over the matter it had developed earlier this year, which was approved by the European Commission on April 1.
French President Emmanuel Macron arrived at the presidential palace on Thursday afternoon to hold talks with his Cypriot counterpart Nikos Christodoulides.
Macron’s arrival was somewhat delayed, with some surmising that the delay may have been caused by farmers demonstrating at the Rizoelia roundabout, which is one of the key junctions on the route between Larnaca airport and Nicosia.
He was joined in the capital by his Foreign Minister Jean-Noel Barrot, while both Cypriot Foreign Minister Constantinos Kombos and European Affairs Deputy Minister Marilena Raouna were at the palace to welcome the French delegation.
Upon his arrival, Christodoulides shared with him a joke about the existence of the British coat of arms on the front of the palace.
The pair and their delegations then entered the palace for talks, with it expected that they will make statements later in the afternoon, before both head to Ayia Napa for the first part of this week’s informal European Council summit.
Defence Minister Vasilis Palmas on Thursday underlined the importance of military readiness, modernisation and strategic alliances, confirming plans to upgrade key infrastructure during remarks marking the feast day of Saint George, patron of the army, at Frenaros.
The defence minister said the Cyprus National Guard remains the “cornerstone of defence” and a decisive deterrent against threats facing the Republic.
Palmas highlighted the “dedication, professionalism and high sense of responsibility” of National Guard personnel, noting that their daily efforts form a key pillar of Cyprus’ strategic readiness and its ability to respond to evolving security challenges.
He stressed that Cyprus’ geopolitical position in the Eastern Mediterranean places it at the intersection of regional and international interests, creating both opportunities and risks that require adaptability and sustained preparedness.
Referring to recent conflicts in Ukraine, Gaza and Iran, Palmas said they demonstrate the need for constant operational readiness, strong deterrent power and the integration of modern technology in defence planning.
The minister outlined ongoing efforts to strengthen military capabilities, with plans to upgrade key infrastructure, including the Evangelos Florakis naval base in Mari and the Andreas Papandreou air base in Paphos, with construction works expected to begin in 2027.
Palmas placed particular emphasis on defence diplomacy and international cooperation, especially ties with Greece, describing the relationship as “unbreakable” and recently reinforced through the deployment of naval and air assets in support of Cyprus.
He added that Cyprus aims to contribute to a stronger and more secure Europe during its presidency of the Council of the European Union, focusing on defence cooperation, maritime security, military mobility and humanitarian support capabilities.
Palmas concluded that for Cyprus “an EU member state with part of its territory under continued Turkish occupation” maintaining a strong, well-organised and technologically advanced National Guard “is not a choice, but a necessity.”
The justice and deputy migration ministries have recorded 195 deportations, 729 voluntary departures and 204 arrests since March, according to figures released on Thursday.
In a joint statement, the ministries describe the initiative as “a joint strategy for managing migration flows, involving continuous operational activity by police and immigration services”.
The same period also saw 256 irregular arrivals recorded.
From January 1 to date, authorities report a total of 535 deportations, 2,052 voluntary departures, 578 arrests and 529 irregular arrivals.
Officials said the data reflects “joint planning and continuous operational action” between the relevant services.
The statement further assured that operations are being carried out nationwide, with enforcement activity focused on cases of illegal stay and employment.
Authorities stated that efforts include detention in police facilities, the central prisons and the Limnes migrant facility.
A parallel government working group, established earlier this year, continues to examine cases of third-country nationals who have challenged detention or deportation orders in court but remain in Cyprus after legal proceedings have concluded.
Police figures cited in previous reporting show that returns have increased over recent years, with 11,500 people leaving Cyprus in 2025 following voluntary or forced return procedures, compared with 10,092 in 2024 and 9,699 in 2023.
Over the same period, arrivals have declined sharply, with approximately 2,400 irregular arrivals recorded in 2025 compared with 6,109 in 2024 and 10,994 in 2023.
Authorities attribute part of the reduction to changes in regional migration patterns, particularly fewer arrivals from Syria following the state’s relative stabilisation under the new regime.
Despite the decline, Cyprus continues to rank among the higher receiving EU member states for irregular arrivals relative to population size, while also recording a high number of international protection applications.
Former president Nicos Anastasiades gave testimony to investigators in Limassol on Thursday in relation with the so-called ‘Sandy’ case, describing the allegations as unfounded and rejecting claims linking him to the material under investigation.
Speaking to Omega TV, after being questioned by members of the investigative team, Anastasiades said the case was based on what he described as “fiction adopted after investigations by journalist Makarios Drousiotis”, adding that the narrative being circulated was inconsistent with his knowledge of events.
“The story is for laughter or even tears,” he said, referring to claims linked to messages and alleged communications presented in the case file.
He addressed references made in the material concerning alleged meetings and relationships, stating that he had no family or personal connection involving former supreme court judge Michalis Christodoulou in the manner suggested in the allegations.
He rejected interpretations of messages attributed to him, saying they were being taken out of context.
According to Anastasiades, suggestions that he had made comments about surveillance or monitoring were misrepresented.
He also responded to claims concerning the use of personal communications during his presidency, stating that while in office he did not make use of a personal mobile phone for official matters, and that any relevant communications were conducted through appropriate channels.
The former president further linked the allegations to publications by Drousiotis, saying the claims were incorporated from books, such as ‘Mafia State’, which he characterised themselves as being “fictious and politically motivated”.
He argued that the material was constructed to support pre-existing narratives, stating that it was being used to frame allegations without evidential basis.
Referring to claims involving a so-called ‘Rosicrucian brotherhood’ mentioned in parts of the case material, Anastasiades retorted that, “the only brotherhood I know is the brotherhood of the unfit,” adding that such references were, in his view, used to undermine institutions.
Authorities continue to examine digital material, witness statements and supporting documentation as part of the ongoing investigation into the case.
An ongoing livestock farmers’ protest at the Rizoelia roundabout in Larnaca continued on Thursday, with Justice Minister Costas Fitiris attending the site as demonstrators blocked key road access.
Farmers initially partially closed the roundabout before extending blockades to both directions of traffic, bringing movement in the area to a halt and prompting police to divert vehicles.
Protesters have said they intend to remain at the location until 2pm, with warnings of further measures if there is no response from the government.
During his presence at the scene, Fitiris spoke directly with demonstrators and called for safety measures to be observed.
“Do your protest but safely. Don’t let people who are not to blame suffer,” he said.
Farmers responded by asking for a government position, saying, “give us an answer then and we’ll stop.”
During a tense exchange between the protesters and the minister, a farmer approached Fitiris and handed over a young child, presumably his son, remarking that “you take him and feed him then, I cannot put food on the table sir”.
Officers were deployed to prevent escalation and to maintain movement for emergency and official vehicles, with motorists advised to use alternative routes due to congestion.
Further disruption was reported as parts of the group extended closures to additional access points, with claims from protesters that the port of Larnaca was also affected.
Farmers are protesting against culling policies introduced under disease protocol measures for foot-and-mouth disease, arguing that vaccination options under EU regulations should be considered in cases where infections are limited.
After being named the next Cultural Capital of 2030, Larnaca’s agenda is already experiencing a busier events agenda, and lots more is on the way. This May, it welcomes the international conference Culture Next, which holds its 16th edition in the coastal city.
The network for the European Capitals of Culture will transform Larnaca into a meeting place for the creative and cultural industries on May 6, 7 and 8. A programme will unfold, touching on how cities and organisations can strategically invest in culture as a driving force for sustainable development, participation and innovation.
Representatives from around 50 European cities will meet in Larnaca to exchange ideas and best practices, discuss developments in their cities, and develop new collaborations. An open day for the general public is set for May 7, inviting the local artistic community to meet with the European cultural industry and to get to know the cultural ecosystem of the participating cities. Discussions will be held on policies supporting the field and on the experiences of artists working in conflict zones.
During May 7’s open day, a keynote speech will be delivered by Mary Ann De Vlieg on the role of networking, solidarity and care. By placing the focus on artists’ rights, the talk will examine how artists and cultural professionals can empower themselves and their community.
A panel session will follow, presenting inspiring cases from different institutions, ranging from practices of the European Institute of Innovation (EIT), to Ireland’s Basic Artists Income Scheme and to Al Mawred’s policies for empowering artists and culture professionals on a PanArab scale. The Toward an Equitable, Fair Creative Economy: Reflections on models and approaches will be moderated by Tom Fleming, the Director of TFCC and Member of the Policy Task Force of Culture Next Network.
The afternoon will also include a panel session where artists can respond and share their challenges and limitations, while the Local Focus event will give space to the Cyprus’ creatives to meet, network and present their work with conference participants. Best of all, all of this is offered with free admission and takes place in the English language! Just don’t forget to register online.
16th Culture Next Conference
Two-day conference for the Culture Next Network of European Capitals of Culture and an open day for the public. May 6-8. Larnaca. www.culturenext.eu
The Limassol district EOA affirmed on Thursday that it will proceed with legal measures where building owners and management committees show indifference to safety obligations, following renewed inspections of structures across the district.
In a public appeal, the organisation said responsibility for the condition, maintenance and structural safety of buildings lies with owners and those managing jointly owned properties, stressing that this duty is not optional.
It said monitoring and timely intervention to address damage, or deterioration is “a serious responsibility of the persons who own, manage or are responsible for the operation of the building”.
The announcement comes in the aftermath of the building collapse incident in Yermasogeia which killed two people, prompting wider inspections.
The authority urged owners to ensure inspections are carried out by qualified professionals registered with the technical chamber (Etek), and to take immediate action where risks are identified.
It highlighted that older buildings as well as those showing visible signs of deterioration, including corrosion or structural deformation, require particular attention.
The organisation warned that where owners or management committees fail to act, it will intervene using all legal mechanisms available.
It said these may include evacuation orders, prohibition of use, sealing of buildings, court proceedings, administrative fines and criminal prosecutions where necessary.
It added that “in the event of indifference, omission or non-compliance”, it will act “where required and permitted by law” to protect public safety.
“Prevention, responsibility and timely intervention are crucial to preventing unpleasant and potentially tragic consequences,” the statement said.
The warning follows the classification of 36 buildings in Limassol as dangerous after inspections carried out by the authority earlier this week.
Officials said affected properties have been marked with warning notices in Greek and English, and some residents have been ordered to vacate buildings identified as high risk.
Limassol EOA president Yiannis Tsouloftas, said evacuation procedures are already under way in certain cases, including a residential complex in Yermasoyia where court action may be pursued if occupants fail to comply with removal deadlines.
The developments come as technical bodies and local authorities step up coordination on building safety.
Etek has expressed readiness to support inspections and structural assessments and has proposed the creation of a digital register of dangerous buildings to standardise reporting and improve oversight.
Authorities say inspections will continue across districts as part of a broader effort to identify structural risks and ensure compliance with safety obligations.
The board of the Cyprus Union of Journalists has expressed concern over what it describes as a growing trend of government and state officials avoiding questions from the press.
In a statement, the union said the practice of officials either refusing to take questions or failing to respond when questions are posed – a phenomenon it noted that has been expanding in recent times – “offers no service to the public good”.
According to the union, such behaviour undermines transparency, erodes public information and weakens critical scrutiny of public affairs.
“Journalists have a duty to ask questions and officials have an obligation to respond. Both engage in public discourse and are therefore subject to public judgement,” the statement said. “Journalists are judged on the quality of their questions and officials on the content of their answers.”
The board said it censured two recent incidents. In the first, police chief Themistos Arnaoutis on April 16 invited journalists to make statements but refused to answer their questions.
In the second case, following a cabinet meeting on April 21, journalists waited in vain as no official made any statements.
“This may be a first, even though during that session an extremely significant decision was taken regarding the arrival of the FBI in Cyprus,” the union noted. “By avoiding statements, it appears that potentially uncomfortable questions were also avoided.”
Acting on behalf of the journalistic community as a whole, the union called on state and government officials to recognise that journalists are not merely recorders of statements.
Journalists, it added, investigate, question, seek, reflect, wonder and often challenge on behalf of the public, in service of the public interest. Therefore, the statement concluded, allowing the submission of journalistic questions is “non-negotiable”.
A video showing a 14-year-old girl beating a peer in the presence of bystanders has alarmed parents’ associations, who blamed parents and children alike for the shocking display of bullying.
The incident, which was circulated widely on live TV and social media, shows bystanders failing to intervene as the victim tries to shield her face from repeated blows.
The attacker continues hitting, slapping and punching, in scenes described as deeply troubling for both parents and educators.
“Unfortunately, things are getting worse,” parent association confederation president Loizos Constantinou told Sigma on Thursday.
Constantinou said delinquency starts earlier, particularly in early teens.
He pointed out, however, that although many cases were found in schools, it was not the schools that were cultivating delinquency.
“It is a broader issue. We saw those scenes of violence […] and people watching as if they were at a match,” he added.
Constantinou said legislation was not being fully implemented regarding clashes among children.
“After much pressure, a circular was sent for committees to be set up in schools and in many cases they have never convened. We have a responsibility as a society, as a state and as parents. I don’t want to let the children off, but the first who are responsible are the adults,” he said.
“First of all, we are to blame as parents.”
TV stations have also been condemned for airing the video, with the Radio Television and Digital Services Authority issuing a circular on Thursday reminding broadcasters to comply with laws protecting minors.
The authority said audiovisual material that may harm the physical, mental or moral development of minors must not be easily accessible to them. It also stressed that such content must include clear warnings if broadcast, and that scenes unsuitable for minors should be brief and handled with sensitivity.
“Special care is required in reporting violence involving children,” the authority added, warning that failure to comply with regulations could lead to sanctions.
Broadcasters were also reminded of their obligation to respect the dignity and privacy of individuals shown in such footage.
The case has reignited debate over youth violence, parental responsibility and the impact of social media, with calls for stricter enforcement of existing rules and greater awareness among both families and institutions.
Livestock farmers threatened to shut down Larnaca airport on Thursday as protests escalated following an unsuccessful meeting with Agriculture Minister Maria Panayiotou, intensifying disruption at the Rizoelia roundabout.
Lasting four hours, the meeting failed to break the deadlock between the government and the farmers on the measures in place to contain the spread of foot-and-mouth disease – specifically the forced mass culling of animals.
“Sadly, there will be an escalation of the measures,” Stella Petrou, representing the farmers, told media.
“We spoke about many issues. The minister asked for the protests to end. Our main demand was for the animal culling to stop. Unfortunately, our demand was not accepted.”
In a sign the farmers meant business, they announced that they’d continue blocking the Rizoelia junction indefinitely – until the government relents.
A senior ministry official later simply reiterated that the slaughter of all animals within infected farming units is a must under EU law. Talks could not go on while the roads were being disrupted.
During the day,the farmers had issued a one-hour ultimatum, warning that if no response was received, they would proceed with further measures including closing the airport and expanding road blockades.
“If the president does not intervene to stop the killings,” organisers said earlier, “we will escalate our measures every two hours.”
Upon returning to Larnaca, protesters moved to fully close the Rizoelia roundabout, trapping vehicles and halting traffic in all directions.
The protest, which began earlier in the day with partial closures, developed into a complete shutdown of the junction, with farmers positioning vehicles and remaining on site.
Police confirmed that “due to a protest, the Rizoelia roundabout has been closed,” urging drivers to “be especially careful, patient and use alternative routes.”
Authorities issued diversion instructions, directing traffic from Larnaca to Nicosia via Kalo Chorio towards Kofinou, while routes through Oroklini were recommended for those travelling towards Famagusta.
Drivers from Nicosia and Famagusta heading to Larnaca were also advised to follow alternative routes.
Tensions at the scene fluctuated as some protesters allowed trapped motorists to pass following police appeals, while others blocked access, leading to confrontations with drivers.
Earlier, protesters had temporarily closed the port of Larnaca as part of coordinated action, while also warning they could expand disruptions to coincide with the arrival of European leaders for an informal council in Ayia Napa.
At the same time, the agricultural union, Euroagrotikos, appealed directly to Christodoulides to announce immediate financial compensation for livestock farmers affected by disease control measures.
The group acknowledged the strain placed on farmers, many of whom have complied with culling protocols despite the emotional and economic toll.
In its statement, Euroagrotikos emphasised that farmers expect “clear commitments” to ensure they and their families do not face severe financial consequences.
However, it also distanced itself from the protest action, urging restraint and a “responsible stance” given the gravity of the outbreak.
The organisation stressed that containing foot-and-mouth disease requires strict adherence to health measures, including enhanced controls at checkpoints, systematic disinfection procedures and tighter monitoring along the Green Line.
Farmers are calling for an immediate halt to widespread killings in affected units, arguing that alternative measures such as vaccination should be considered where infections are limited.
Livestock farmers at the protest carried banners, a coffin and wreaths.
Slogans displayed at the scene include “We are not ignorant – There are EU protocols that save our animals, as long as you want them to,” alongside messages such as “You are killing the future of our livestock farming” and “We want the government on our side, not against us.”
Petrou had said the group would not withdraw without assurances, stating, “We are not leaving if the killing of animals does not stop,” while emphasising that escalation would continue in the absence of a government response.
She pointed to provisions within EU regulations allowing for vaccination as an alternative.
“Our aim is not to inconvenience the public,” she said, while stressing the urgency of the situation for affected farmers.
The police said contingency plans were in place to ensure public safety and protect key movements linked to official events, adding that authorities would intervene if necessary.
The decision on the application to cancel a search warrant issued for the home and office of lawyer Nikos Clerides was reserved by the Supreme Court on Thursday, following initial legal arguments by the defence.
Proceedings before judge Elena Ephraim focused on the scope and legality of the warrant, with the defence seeking its annulment and raising issues relating to the handling of evidence and the safeguards applied during its execution.
Former bar association head Christos Clerides, representing Nikos Clerides, said after the hearing that “the first stage of the procedure has been completed” and that the court’s ruling is now awaited.
He added that, should the decision be favourable, a further application would be submitted to the legal service, which would then consider whether to file an objection.
“We are now awaiting the court’s decision. If it is positive, then we will proceed to the next stage,” he said.
During the hearing, the defence argued that the case raises significant questions concerning personal data protection and legal privilege, given that the warrant relates to a practising lawyer.
Christos Clerides described the matter as “very important”, stating that such cases require the appointment of an independent supervisor from the bar association to oversee the execution of the warrant.
He argued that no such oversight was in place, questioning whether sufficient safeguards existed to protect confidential material.
Referring to the seizure of laptops, mobile phones and USB files, he said this constituted “a serious interference with protected data” and asked “who ensures that the police will respect these limits”.
The defence also raised concerns regarding the status of Nikos Clerides within the investigation.
It was argued that the affidavit supporting the warrant “does not clearly indicate that the lawyer involved is considered a suspect”, pointing instead to ambiguity about his role.
According to the defence, this position was reflected in testimony presented during proceedings, while the court appeared to link him to the offences under investigation.
Further submissions questioned the necessity and proportionality of the warrant, as well as whether sufficient evidence had been presented to connect the premises to specific alleged offences.
The defence maintained that the application establishes a prima facie case for review.
The case stems from an ongoing investigation in which authorities executed a search warrant at Clerides’ premises, as part of inquiries linked to allegations to high-profile people made by journalist Makarios Drousiotis.
Agricultural organisations rejected the ongoing farmers’ protests over the foot-and-mouth outbreak on Thursday, as police warned that gatherings could increase transmission risks and involve individuals unrelated to the livestock sector.
The positions were set out during a session of the House agriculture committee, where representatives of farming bodies called for restraint and continued dialogue.
Farming union EKA’s president Panikos Hampas said the sector was acting with “responsibility through dialogue, not the street”, describing Thursday’s gathering at the Rizoelia junction as “irresponsible”, alleging that some were exploiting the situation for political purposes.
Panagrotikos president Tasos Yiapanis called for decisions based on evidence, referring to the need for “documentation and not blind reactions”, while Euroagrotikos’ chairman Lambros Achilleos said “200 livestock farmers cannot be allowed to pollute the entirety of Cyprus.”
Nea Agrotiki’s spokesman, Christakis Papayiannis, raised concerns over illegal movement of goods and animals across the Green Line, which organisations said undermines containment efforts.
Police informed the committee that individuals with no connection to livestock farming were encouraging participation in protests.
Police representative Ioannis Kapnoullas described them as “self-appointed protectors” and warned that such actions could lead to public disorder and increase the risk of spreading the disease through gatherings in affected areas.
Updated figures presented during the session outlined the scale of the outbreak.
The agriculture ministry’s permanent secretary, Andreas Grigoriou, said that as of today, “104 livestock units in Nicosia and Larnaca had been identified with foot-and-mouth disease, including 13 cattle units, 88 sheep and goat units and three pig units”.
He confirmed that “37,066 sheep and goats had been culled, representing 8.1 per cent of the total population, along with 2,247 cattle, while 21,644 pigs were in the process of being culled”, corresponding to about seven per cent of the total.
Grigoriou said compensation payments were under way, with advances already paid to affected farmers and further payments expected.
“Each livestock farmer will be informed of the amount of compensation they will receive,” he assured, adding that payments could be completed within 90 days from the detection of each case.
Akel MP Yiannakis Gavriel said “foot-and-mouth disease is laying waste to our farmers” and called for immediate measures and clarification on compensation.
Disy MP Charalambos Pazaros referred to the “illegal transport of animals and feed” from the north, while Diko MP Christos Orphanides said that without implementation of protocols in the north “the virus will never disappear from Cyprus”.
Further information presented to the committee focused on compensation delivery timelines and enforcement of animal movement restrictions, with officials confirming that payments for loss of income, milk disposal and feed destruction are continuing alongside outbreak containment measures.
Grigoriou told the committee that advance payments have already been issued to affected livestock farmers and that further disbursements are scheduled within the current cycle.
He assured that “each livestock farmer will be informed of the amount of compensation they will receive”, adding that the advisory committee established for assessments will ensure structured notification of entitlements.
Veterinary services director Christodoulos Pipis confirmed that the compensation framework operates on a 90-day basis from the date of detection of each outbreak.
“The 90 days are calculated from the date of detection of each incident,” he said, clarifying that the system applies individually per affected unit.
Pipis also addressed enforcement actions linked to breaches of movement controls, stating that in a recent case involving the transport of animals from a slaughterhouse to Paliometocho, no authorisation had been issued.
“No permission was given to move the animals to the slaughterhouse,” he said, adding that administrative fines were imposed and the case was forwarded to police authorities for investigation.
He remarked that additional irregularities had been identified during inspection procedures connected to culling operations, with enforcement continuing alongside veterinary controls.
During the committee discussion, concerns were also raised by MPs regarding animal movement and biosecurity from the government-controlled areas to the north.
Officials said measures in place follow European disease control requirements, including culling, sampling and vaccination of healthy animals in affected areas, with authorities maintaining that compliance remains essential to contain the outbreak.
GitHub Copilot Chat now provides richer context and new capabilities when you’re working with diffs and pull requests.
You can access this functionality by asking a question about a pull request in github.com/copilot, or via the global Copilot navigation, which allows you to open chat over any GitHub surface.
Public-preview-enabled users can also click the Copilot button on a diff to ask a series of questions to better understand the changes or the related pull request.
Three new abilities improve how Copilot Chat responds to pull request questions. These work in both on-page and immersive (github.com/copilot) chat:
We’ve updated the suggested prompts for chat (e.g., “Help review this pull request”) to guide you through the relevant functionality.
Join the discussion within GitHub Community.
The post Copilot Chat improvements for pull requests appeared first on The GitHub Blog.
The new global pull requests dashboard will be on by default for all GitHub users as the new experience transitions to an opt-out public preview.
The new dashboard and inbox view give you a unified place to manage all of your pull requests. Since the opt-in preview launched, we’ve shipped a wave of improvements based on your feedback.
You can now choose which view is shown by default when you navigate to github.com/pulls. The inbox starts as your default.
Your feedback is essential to helping us improve this experience. Please use the Give feedback link under the Preview label at the top of the page to send us feedback.
Once it’s enabled, you can still opt out from the Preview label at the top of the page or feature preview.
The post Global pull requests dashboard moves to opt-out public preview appeared first on The GitHub Blog.
Following the Copilot coding agent to Copilot cloud agent rename, the Copilot usage metrics API now includes a new used_copilot_cloud_agent field in user-level reports. This boolean field mirrors the existing used_copilot_coding_agent flag under the updated product name.
| Field | Description |
|---|---|
used_copilot_cloud_agent |
Whether the user had Copilot cloud agent activity during the reporting period (boolean, nullable) |
The field is available in single-day and 28-day rolling window reports at both the enterprise and organization user levels. It returns the same value as the existing used_copilot_coding_agent field, which will be preserved for backward compatibility until August 1, 2026.
used_copilot_coding_agent field continues to work and will not be deprecated until August 1, 2026.Join the discussion within GitHub Community.
The post Copilot cloud agent fields added to usage metrics appeared first on The GitHub Blog.
Python projects will now see more complete and accurate transitive dependency trees in their dependency graphs and Software Bills of Materials (SBOMs).
This feature is based on a new type of Dependabot job that builds a dependency snapshot and uploads it to the Dependency Submission API. It’s similar to dependency autosubmission, but it does not incur charges for actions minutes and can access organization-wide configurations for private registries you’ve set up for Dependabot.
This release supports all the major package managers for Python, including pip, uv, and Poetry (v1 and v2).
For more information, see Configuring the dependency graph.
The post Dependabot-based dependency graphs for Python appeared first on The GitHub Blog.
You can now disable commit comments at the organization level—no more manually updating every repository one by one.
A few weeks ago, we added the ability to disable commit comments on individual repositories. Now, organization owners can turn off commit comments across all repositories in their organization from a single setting, saving significant time for organizations managing large numbers of repositories.
To disable commit comments for your organization:
To leave your feedback, join our Community discussion.
The post Disable commit comments across your organization appeared first on The GitHub Blog.
GitHub Copilot Chat in github.com helps you get to the root cause of an error faster when you paste a stack trace. Copilot recognizes stack traces more reliably and will guide you through a structured root-cause analysis using the stack trace plus your repository’s code context, helping you move from “where it crashed” to “why it happened”.
So that you can act faster, Copilot’s responses are now more structured in the following ways:
Paste a stack trace into GitHub Copilot Chat on the web and include the relevant repository or file context. If you have a repro step or input that triggers the error, add it for even faster root-cause analysis. This is available now to anyone using Copilot in github.com.
The post Better debugging with GitHub Copilot on the web appeared first on The GitHub Blog.
You can now view and steer cloud agent sessions directly from issues and projects, giving you better visibility into agent activity without leaving your workflow.
Join the discussion within GitHub Community.
The post View and manage agent sessions from issues and projects appeared first on The GitHub Blog.
As part of our ongoing efforts to ensure a reliable and sustainable Copilot experience for all users, we are pausing new self-serve signups for GitHub Copilot Business for organizations on GitHub Free and GitHub Team plans. Existing Copilot Business customers are not affected and can continue adding seats and using the service as they normally would.
We will share an update as soon as self-serve signups are available again.
The post Pausing new self-serve signups for GitHub Copilot Business appeared first on The GitHub Blog.
We are migrating the download URLs for Copilot usage metrics reports from Azure Front Door domains to a stable, GitHub-owned custom domain. This change will improve URL stability and make firewall and proxy allowlist management easier for enterprise customers.
Starting May 20, 2026, Copilot usage metrics report download links—returned by the Copilot Usage Metrics API—will use the new domain copilot-reports.github.com instead of the current copilot-reports-*.b01.azurefd.net pattern.
github.com (GHEC) customers:
| Current | New | |
|---|---|---|
| Report download URL pattern | https://copilot-reports-*.b01.azurefd.net/... |
https://copilot-reports.github.com/... |
ghe.com customers:
| Current | New | |
|---|---|---|
| Report download URL pattern | https://copilot-reports-*.b01.azurefd.net/... |
https://copilot-reports.*.ghe.com/... |
If your organization uses a firewall or proxy allowlist, add the following domain before May 20, 2026:
https://copilot-reports.github.comhttps://copilot-reports.*.ghe.comThe legacy copilot-reports-*.b01.azurefd.net pattern will continue to work during a transition period, but will eventually be deprecated. We recommend updating your allowlists as soon as possible.
Note: In rare cases where Azure Front Door is unavailable, report downloads may fall back to direct Azure Blob Storage URLs (
*.blob.core.windows.net). If your organization requires uninterrupted access to reports during such events, you should also ensure*.blob.core.windows.netis in your allowlist.
The previous Azure Front Door domains were infrastructure-specific and could change when services were redeployed or reconfigured. Moving to a stable, GitHub-owned domain ensures that:
For more information, see the Copilot allowlist reference.
Join the discussion within GitHub Community.
The post Upcoming change to Copilot usage metrics report download URLs appeared first on The GitHub Blog.
Wanted to let people know that my PR to get std::io::ErrorKind moved into core was merged this week! I'm hoping this is the starting point to get more of std::io moved into a combination of core and alloc, which should hopefully allow for way more no_std crates in the future, especially for format crates like image.
PRs for Error, Read/Write/etc. are on the way and largely awaiting decisions around:
Box in core (probably storing drop functions within the heap allocations that would need to call them)core for Display/etc. implementations (probably a static atomic pointer, until externally implementable items is more stable)RawOSError and the IoSlice types into core/alloc is acceptable (core and alloc are supposed to be as platform independent as possible)By the end of this chapter, you'll learn to:
https://github.com/caldempsey/parfit
A comment that looks like this:
// Curiously enough, the only thing that went through the mind of the bowl of petunias as it fell was 'Oh no, not again.' Many people have speculated that if we knew exactly why the bowl of petunias had thought that we would know a lot more about the nature of the universe than we do now.
Gets reflowed into this:
// Curiously enough, the only thing that went through the mind of // the bowl of petunias as it fell was 'Oh no, not again.' Many // people have speculated that if we knew exactly why the bowl of // petunias had thought that we would know a lot more about the // nature of the universe than we do now.
How could we fight this without creating thousands of fork
Someone makes a crate, but has NO time to maintain. Another guy takes up the crate with a fork but then he cannot maintain it.
Now the crate is better but still contains poor code like panics
Many niche crates are like that and it's really sad. The worst part is, if I fork the crate, the day I will stop maintaining I become part of the chain
It would be great to have a better maintained system. But I think it's more at the open source level than at the rust level
How could rust help fix that?
I've been working on an audio processing project and ran into a classic embedded problem — FreeRTOS scheduler jitter. Even a pinned high-priority task can still get preempted by system ticks, which is really bad for real-time audio.
But honestly the jitter problem wasn't the only reason I did this. After spending a lot of time with no_std Rust on the RP2350, going back to writing C for ESP-IDF became really painful. Crates like heapless just work, and without them in C, I am reimplementing everything from scratch. Fixed size buffers, ring queues, all of it by hand. Once I had that quality of tooling it's hard to go back.
Then I noticed something: the ESP32-S3 has two cores, and FreeRTOS only needs one. Core 1 just sits there doing nothing when you enable CONFIG_FREERTOS_UNICORE=y. So I thought, what if I just take it?
That rabbit hole turned into a pretty fun weekend project. I ended up waking Core 1 directly at the hardware register level and running no_std Rust on it completely outside the RTOS.
The post covers two parts:
Part 1 is static linking — reserving memory so ESP-IDF's heap never touches it, waking Core 1 by directly writing to hardware clock and reset registers, a minimal Xtensa assembly trampoline to set up the stack pointer before jumping into Rust, and AtomicU32 for lock-free inter-core communication.
Part 2 goes further — the Rust binary lives in its own flash partition, gets MMU mapped at runtime so it's executable, and can be updated independently without reflashing the main firmware.
Full writeup here: https://tingouw.com/blog/embedded/esp32/run_rust_on_app_core
Would love to hear if anyone has done something similar or has thoughts on the inter-core communication side. Currently using atomics but thinking about building a proper lock-free ring buffer next.
A Rust TUI to manipulate the Jujutsu DAG.
Inspired by the great UX of Magit.
Previously named jjdag, renamed to majjit. Many new features like additional commands, worktree support, inline text entry, and fuzzy matching!
I'm very pleased to announce the release of Vizia v0.4!
Vizia is a framework for creating desktop GUI applications in a declarative way in pure Rust (no DSL or macros). The API is loosely inspired by SwiftUI but leveraging signals for reactivity.
This release brings the following major changes:
The GH repo is here https://github.com/vizia/vizia and the list of changes from 0.3 is here https://github.com/vizia/vizia/releases/tag/0.4.0.
There’s also a guide book at https://book.vizia.dev/ which has been updated for this new release.
https://codeberg.org/cemoktra/gin-tonic
gin-tonic is a Rust protobuf library that lets you use your own types directly on the wire — no manual conversion boilerplate.
It provides:
prost)prost-buildtonic codec implementationtonic-build with extra featuresScalar trait to map any Rust type directly to a protobuf wire typeWhen you use a UUID in a protobuf message with prost, you write:
protobuf message Foo { string my_uuid = 1; }
This generates:
rust struct Foo { my_uuid: String, }
Your code wants uuid::Uuid, so you end up writing conversions everywhere — and handling parse errors at every call site.
Annotate your .proto file with the Rust type you want:
```protobuf import "gin/proto/gin.proto";
message Foo { string my_uuid = 1 [(gin_tonic.v1.rust_type) = "uuid::Uuid"]; } ```
The gin-tonic code generator produces:
rust struct Foo { my_uuid: uuid::Uuid, }
The conversion is handled once, inside the Scalar trait implementation — not scattered across your codebase.
Two feature flags cover the UUID case out of the box:
| Feature | Wire type | Notes |
|---|---|---|
uuid_string | string | Parse errors handled in the wire type conversion |
uuid_bytes | bytes | No parse errors; 16-byte fixed representation |
Implement Scalar for any type to use it as a protobuf field:
```rust impl gin_tonic_core::Scalar<gin_tonic_core::scalars::ProtoString> for MyType { const WIRE_TYPE: u8 = gin_tonic_core::WIRE_TYPE_LENGTH_ENCODED;
fn encode(&self, encoder: &mut impl gin_tonic_core::Encode) { encoder.encode_str(&self.to_string()); } fn decode(decoder: &mut impl gin_tonic_core::Decode) -> Result<Self, gin_tonic_core::ProtoError> { decoder.decode_string()?.parse().map_err(Into::into) } } ```
Measured against prost 0.13.1 on an equivalent message with a UUID, 10 IP addresses, a string, and a nested map with 5 entries.
gin-tonic: gin_encode time: [269.91 ns 270.22 ns 270.79 ns] gin_decode time: [658.58 ns 658.75 ns 658.93 ns]
prost (including From conversions to idiomatic Rust types): prost_encode time: [564.87 ns 566.21 ns 568.18 ns] prost_decode time: [667.34 ns 671.05 ns 675.87 ns]
Decode performance is on par with prost while encoding is roughly 2× faster.
Hi ya'll!
As a little exercise while learning Rust, I created a tool to help me & my friend/family whenever we get stuck solving a crossword. Nothing fancy, but figured I'd share... perhaps someone else thinks its useful.
https://github.com/janheindejong/cwhelper
Oh, and by the way... love Rust. What an elegant language!
Cheers!
Just wanted to vent a bit, a year ago I made it onto a Rust only team in FAANG, great salary, great coworkers, and best of all I finally was getting to write Rust on the clock. Fast forward to today, we were told that all new code must be written by LLMs next year and we should be code reviewers only. I'm already almost there. Instead of coding I write specifications, instead of debugging the LLM debugs, instead of code reviewing the LLM does the majority of the analysis.
It feels like Rust came too late, a great language that we barely got to experience before being swallowed in the post coding age. I'm still trying to find ways to write Rust by hand here and there, but like the chainsaw to the axe, or the auto to the horse, you don't get the same sense of productivity out of doing something "the old fashioned way". I feel robbed.
Hello! I recently needed to help a friend access Signal in a country that is very restrictive in messenger use. I know Signal has a domain fronting feature built in and how it works, but I didn't like the reference implementation's need for docker-compose and how it's deployed.
Since I already had various TLS and rustls projects in the past I tried to make my own that integrates properly into the packaging system and behaves like any other daemon. It's currently available as a container image, in the testing repository of Alpine (apk add signal-tlsd), and the unstable repository of Debian (apt install signal-tlsd).
Note you need to provide valid certificates, either by placing them at the right location in /etc, or by putting symlinks to the /var/lib/... location of your acme client.
Feedback welcome! 🦀
Unbug provides debug breakpoint assertion macros for your Rust projects.
This new version adds a macro that can insert assertions before failures with the try-operator (?).
I also added experimental support for triggering test failures when assertions are run in test mode.
I'll be giving a talk this evening about Unbug at the Bevy virtual meetup this evening at 19:00 CEST!
Hey everyone!
I want to share a system fetch project I’ve been working on for a while. I’ve left it untouched for long periods, but I still come back to it from time to time when I feel like improving things.
Most of you probably know tools like fastfetch. It’s one of the popular fetch tools on Linux, but I personally never liked dealing with its configuration. I usually just end up copying dotfiles from others. JSON and similar formats are great for machines, but for humans they are not really pleasant to write or read.
And of course, many of you remember neofetch. It was simple and easy to configure, but it eventually got less popular mostly because it was slow.
When I first started this project, I chose YAML because it felt easier to read. But later I just thought, why am I making this more complicated for myself?
So the idea behind this project is simple: a fetch tool where you can easily customize ASCII art, change colors, and write configs in a very simple way. Something that feels as easy as neofetch, but more modern and fast.
It’s been around for more than 6 months without much active development, but I never really stopped thinking about it. Whenever I have free time or motivation, I add new things. In my last update I focused more on performance, ASCII colors, and a few small features.
Here is the project link:
https://github.com/0l3d/ffetch
If you check the code comments, you might see that image support is planned for the future. I’m not sure when I’ll add it though, maybe soon, maybe later.
A few extra notes:
If you try it out or just take a look, I’d really appreciate any feedback. And if you like it, a star would definitely motivate me to keep working on it again.
Thanks for reading 👍
Hello, I would like your input on this project I've been working on. I worked on it *myself* because I want to become proficient in Rust. I asked for Claude's help to change the grammar from Python Lark to Rust Pest (yes, I started this project in Python :P). Claude also gave me the idea to use clozures, and some dinamic dispatch here and there. The rest is pure effort and sweat on my side.
From the readme:
jed is a command-line tool that brings sed's power to JSON manipulation. Unlike other JSON tools that invent new query languages from scratch, jed uses the familiar sed syntax that power users already know (and love!).
If you know sed, you already know jed.
Hello! I’m currently in the process of writing a CLI tool for a hobby project. It’s been going decently, but I’m having a bit of trouble handling the user’s input buffer.
At the moment, I have a 512 B buffer in the main scope, containing input from stdin. Then, I have a struct for the parsing of that buffer.
The struct holds a mutable reference to the buffer, an enum to match the first command, a vector for all the parsed arguments, and a number for the argument count.
I’ve been able to tip-toe my way around parsing and modifying the buffer using nothing but & and &mut. However, I’ve seen a lot of different tools on the stdlib that are meant to help you in situations where more than one mutable reference, or a mutable reference and aliases, are desirable.
Rc, cells, boxes, etc. Problem is, I don’t understand their nuances at the moment, so I wanted to ask more experienced devs what they’d pick to solve my problem.
Thanks in advance!
Hello. I'll preface I just started GameDev as a hobby so if my question is stupid it's because I am. I'm doing this for professional development as an engineer and don't expect to ever release anything, hence why I am not settling for a "good enough" mentality. I'm using Godot but I'll try and add Unity equivalents where I can for readability.
I currently have an AppStateMachine that starts on a BootState that I want to wait on until all my required Singletons are loaded before proceeding. However I am trying to solve a Race Condition issue in doing so. Currently I have this implemented by:
The issue I see with this implementation is that it couples my BootState with each singleton. However the only alternative I see is some kind of polling function, where:
The issue I see with the above is it adds a lot of complexity and thus risk of memory leak or bugs for an otherwise benign functionality. And it adds additional code to the EventBus which I am imagining will rapidly become a huge bloated monolithic function quickly (I have no idea how one is implemented or its proper use of yet so maybe I'm imagining it wrong).
So what is the best practice method to resolve the above?
Thank you for your time reading to this point. If the post isn't clear or hard to read let me know and I'll update accordingly.
hey all. so i've been working on my first project since the beginning of the year. like many first games, its a precision-ish platformer. its its still greyboxed, but ive been small play testing and the feedback has been surprisingly good! Ive just been having so much fun, I didnt realize until recently theres negative sentiment about platformers and how if they are aren't the best genre to invest time into because of how oversaturated + low visibility they are. My gut says ignore it, i know im not making the next Celeste, so i should finish the game this year and not care. im on disability, so im not in this for the money but ive been approaching this like a full time job , so If I put in all the work when I start sharing and marketing more, I would love for it to at least be seen well if its deserved.
Im in my 30s and I feel like life has kinda prepared me for game dev because of the grit and work ethic ive had to build. im so thankful to have had a pretty long career in visual art, audio engineering, creative projects etc that brought me to a lot of amazing places until some deeply unfortunate events, so I feel like it may be a pretty okay game for my first go, in the very least something ill be proud of! But the idea that even if its super fun, visually awesome, well done and tons of heart and soul blah blah blah and it hardly being seen is a bummer. The way life works I say all this and it turns out trash lol.
Done yapping, heres the question: My game is pretty fast and fluid, so Im wondering if it would be worth be worth it to pivot to making my game a roguelite inspired platformer with semi-procedural levels and single runs since I know they perform pretty well. Never really been my thing, but there are some ive loved. The bummer is that I am a writer as well and had a pretty cool narrative that think is actually not lame, but the continuous runs kinda weaken it? I know narrative isnt the most important thing, but story telling was always part of the draw into game dev in the first place. Switching to a Metroidvania would work, but I feel like thats way too ambitious for a first game and way more art for me to make and I want to finish this before the end of the year.
TDLR: Just put the platformer out, use to learn for the next project and not care about visibility? Or consider adjusting the genre? Im so sorry this is 3 paragraphs.
I've been building a track and field career sim and along the way I've put together these themed, "How I Built This" posts highlighting different aspects of the game's systems, describing the choices I made, showing some code, etc. They seem to have gotten a good response but I'm running out of ideas - wondering if there are topics people have written about that players were interested in?
Here's what I've done so far - time formulas, rivalry system, performance formula, energy system, how narrative works, and how NPCs/leveling/meet qualification works.
I made a post a few days ago asking about what makes a turn based rpg game good for a game i’m making, got a lot of good ideas, implemented a ton of stuff, but i ran into a kind of wall: bosses. i assume that when playing a turn based game, most people don’t just want damage sponges as bosses, but i’m not too sure what makes a good boss. a gimmick? good animations? music(i know a few bosses that i enjoy entirely because of their music)? anyways, i cant think of much, so what do you guys think?
TLDR; Last Friday, I gave up on my vibe-coded game because I came to the conclusion that it was never going to work. I spent about 40 hours over a couple of months chasing a dream fueled by AI marketing hype. Vibe-coding full projects is largely a myth and today’s models and agents aren’t able to build anything more than prototypes. You can’t use AI to make up for not knowing GDScript or Godot. The time you spend fumbling around with AI would be better spent learning the technical skills.
If you’re a seasoned game developer, you already know this. I’m sharing this story for anyone out there who, like me, felt like learning game dev is an impossibly huge task and that AI might be the answer to that problem. I hope this can serve as a reality check to help stem the tide of “AI Slop” inundating society. Behind every “AI Slop” is someone that is naive and hopeful they could build something useful. Experts in every field have been screaming at the top of their lungs that vibe-coding is bunk for a while now, but I still thought that *maybe* they were wrong and I was smart enough to use AI to build something good. Now I’m just another disappointed Joe Schmoe. If the hoard of vibe-coders won’t listen to the experts, maybe they’ll listen to a former vibe-coder instead. Feel free to link them here when the next one shows up.
For background, I’m a 38 year old father of 5 who has a 15-year career in cybersecurity and who has always loved video games. Part of my day job is reviewing AI use cases for my company, and vibe-coding has come up a lot. I wanted to get a better understanding of what it is and how it works, so I figured I’d try out my own vibe-coding project to learn about it. I knew I needed something interesting or I’d lose focus quickly. I’ve always wanted to create my own game and had been taking notes on one for about a year. The La Mulana series is one of my favorites, and I can’t find anything else to scratch that itch. I figured I’d take a shot at building a spiritual successor. I had no idea if it would be successful or not. This was about trying something new and learning a career skill more so than ultimately completing a game. I needed to find out if vibe-coding is all about and if it is too good to be true (spoiler alert: it is).
The plan was that I’d be the product owner for the project with a strong vision for what I wanted and QA the crap out of it until it was exactly the way I wanted it. I’d then let AI handle all of the coding and other technical pieces. I had never written any GDScript or used Godot, but I’ve done programming in the past. I wanted to let AI be the technical muscle and I’d be the creative force and QA behind the game. In the back of my mind, I doubted this would ever work, but I wouldn’t know until I tried.
Things started out pretty well for me. I used the “Pro” and “Thinking” modes of Gemini to get the initial plan for the project. I’d build the game in Godot using Replit’s vibe-coding IDE, eventually moving to Cursor once I had a working prototype. The system was basically me describing what I wanted into Gemini Web and pasting that into Replit. I’d then go back and forth with Replit to debug the code that it wrote. Things were good for a while. I had a testing room and a player that could run, jump, climb ladders, read tablets, equip a scanner, and save/load. This was all within the first 3-4 hours. Life was great.
Then, I ran into some issues with enemies and combat. No matter what I did, nothing worked. Prompt after prompt didn’t fix anything and it often got worse. At 3am one night, I almost decided to delete the entire repo and quit. I held off and cooler heads prevailed.
I worked with the AI more to figure out what went wrong. This is where I really thought I had turned a corner. I didn’t let my initial failure stop me. I spent about 2 weeks learning what I should have all along. I still wasn’t going to learn GDScript or Godot (a truly atrocious decision in hindsight). But I was going to learn how to use AI tools to their fullest extent (which has the upside of helping me in my day job). I was going to be better, faster, and smarter this time around.
I learned a ton about context windows, MCP, pipelines, project management, game production, and several other areas. I decided to beef up my development pipeline and try again. I took time to distill my year’s worth of notes into a master vision for the project and other pre-production tasks. I wrote out the core narrative of the story. I set up a HacknPlan account to manage my game design, tasks and milestones. I configured MCP servers for my Godot project, Godot language server, HacknPlan project management, and my GitHub repo. I organized my work into a roadmap with milestones and sprints. I broke my AI chat sessions into unique personas for AI operations, game design, and project management. I used separate sessions for each feature branch to focus the context and save tokens. I automated building a skeleton of my project so the chat sessions could see my whole project at a glance. I set up Continue to run locally in VSCode. I integrated Continue AI agent with Google AI Studio at Tier 1 paid. In my mind, I created a game development juggernaut pipeline and a team of 4 or 5 specialized AI personas that should be able to address any of the shortcomings that led to my previous issues.
I finally got back into programming and my next task was migrating the game from a 16x16 grid to a 32x32 grid to better fit the 128-bit vision I had for the game. That broke a few things, and the AI agent struggled with my player script. Google AI Studio saved me by re-writing the entire file in my web browser. It became clear that the player script was too long for the AI agent to parse, so it was time for a refactor into a state machine. The design was great and eventually I got it working. So far so good, right?
It was around this time I took a break to work on another vibe-coded mini project. I built a dashboard for approximating the stress of a chess player during a game. It’s nothing earth shattering, but it worked and I was really happy with it. Beside the lazy “AI Slop” comments (it wasn’t slop, I spent 20 hours of my life doing QA, polishing, and documenting it), the feedback I got was that its human approximations weren’t good enough to be useful. I wished I had gotten that information sooner so I could have saved myself a ton of time and embarrassment by quitting early.
I took this mentality back to my game and decided I wanted to come to this forum and ask for a reality check. Before that I decided that I’d let my AI juggernaut try to do the finite state machine refactor to prove itself. I put my new pipeline to work and I got something that worked. It felt like a breakthrough. Before I asked for the community’s opinion I decided to ask the AI to do an adversarial analysis and find any glaring issues, and oh boy did it find some.
It turns out the AI agent took a ton of shortcuts creating the finite state machine. The state machine was basically a global variable the player script would check. None of the logic or functionality made it into the state machine. It was all still in the player script. I set out to do a hotfix for this and Continue choked on the codebase and mangled it. I switched to Cline which did a better job, but it still broke more things than it fixed. I’d paste the code the agents wrote back into Google AI Studio to validate it, and the code had all sorts of errors that ignored the specifications in the prompt. It was clear that I’d have to work through Google AI Studio as an IDE agent couldn’t handle what I needed it to do.
It was at this point I took a hard look in the metaphorical mirror. I used the refactor as a litmus test, and the AI system I built had failed. The hard truth is that I’d have to learn GDScript and Godot well enough to do it myself. If that’s the case, why even use AI. I was right back where I started. I knew all too well that I didn’t have the time to learn it all from scratch. It was time to give up the ghost and retire the project.
While the game development failed, my quest to learn if vibe-coding was too good to be true was complete. AI models and agents as they are right now just aren’t capable of building systems complex as a metroidvania video game. While they might work for single page web apps, metroidvanias (and most games in general) are highly choreographed chaos running at 60fps. While this is probably obvious to any of you that have been doing this for a while, there’s an influx of newbies like me to pretty much every field that have been sold the myth that anyone can do anything with AI. This post is for them.
Right now, AI agents are best used for quickly doing simple tasks or brainstorming high-level designs. There’s a murky middle area that’s too specific for web based sessions and too vast for IDE based agents. While the web based agents might have the domain knowledge, they’re not able to apply it across dozens of scripts. The agents can’t handle more than 2-3 scripts at a time. There’s not much you could build with AI that you couldn’t build yourself in the same amount of time while learning the actual technical skills as you go.
If there’s anyone out there that’s had success vibe-coding a full-length game, please let me know. I’d love to be wrong here. Until then, I hope this can be a cautionary tale to anyone else caught up in the current wave of AI hype.
| It starts tomorrow. Theme is already revealed on our Discord server. Looking forward to anyone who shows up and builds. [link] [comments] |
Hey everyone, I'm in the early design phase of a game with a lot of interior spaces. Think sci-fi facilities, underground labs, etc. I'm looking for something lightweight where I can quickly sketch out a top-view floor plan. Ideally drag-and-drop rooms, corridors, that kind of thing. Does anyone have go-to tools for this kind of early-stage layout work?
I am currently using some of my free time to develop a few simple scenes for fun, and I have been obsessed with DS1 since it released. I'd like to replicate something similar to it. My only issue is that I am having a hard time figuring out what gives it that unique "highly thought out and well done but lower fidelity" quality. I would like to land somewhere between DS1 and an upcoming game called Prison of Husks ( https://www.youtube.com/watch?v=iM2eYA0GO-g ). Can anyone give me some advice on how to achieve something that approximates that look? I do realize so much of it is a very talented person in charge of artistic direction, but I am scrounging for scraps here on what could even point me in the right direction. thanks!
Hey ho People!
I am trying to make an Top Down 2D Action Adventure Game with Solarus. I think it will fit my ideas the best.
But sadly I dont have any coding experiences, any pixel art experiences and any composer skills. Yeah I know...I am the worst. :(
Where should I begin? Is it worth to just start Solarus or should I just go through the theory and learning pure coding first?
I dont know if I can handle learning coding without creating something creative...for that reason I am asking. Especially I really have spare time. I know that RPG Maker is a better solution for "just jump straight in" at the beginning but I dont know if it will fit my ideas of an action adventure. Plus If I take my free time to create a game I could take it as an opportunity to learn some coding and get a cool skill in my life :)
What are your thoughts? Where should I begin?
Sorry If my english is not perfect...I am not using any translation tools
While I'm playing through Pragmata, I want to note that the game's level design has my deepest respect.
I recommend the game to beginner (and not only) level designers. There are tons of examples of how it should be done — basically a living, hands-on guideline.
Hello everyone! I am finishing my junior year as a CS major and this summer I was thinking of working on a personal project to make a little game. Where should I start? I have used C# and Java more than anything else but I also have experience with html, python, and C++. Should I use a game engine? or learn to raw dog it in any IDE? Any other tips for learning this side of coding? Thanks in advance!
I'm working on a card game in Tabletop Simulator and using Excel for all my development. Since it's all D20 based the math is fairly easy.
Now, my friend is doing the programming in Godot for turning my card game into a Slay the Spire-inspired game. I'm doing the art side but also working on the mechanics, since I designed the original card game physically.
I'm curious if anyone has any templates or resources for testing out the stats, bonuses, etc in Excel or another program where I can easily test out the math for it to make sense, since I don't necessarily have the coding chops to put the math/mechanics into godot directly. I was able to get some of the formulas figured out to test 2 stats against eachother, etc.
Basically what I need is to set up something where I can take the initial stats, add item stats, then the bonuses between rounds/available cards to figure out the maximum of each stat that could possibly occur.
Has anyone else been in this situation before?
Did you pivot or did you plod on?
Not really a question but a reflection and discussion topic. I’ve been working on my first commercial release for 10 months now and just got it feature complete last week 🎉🎉🎉.
Got to play test it myself and the core fantasy is nowhere to be found. I started this project as a cozy game, what I made is an multi system complex optimization headache that really wants you to min max. Maybe I should have noticed sooner but it’s time to go back and start stripping systems out.
Guess this is what happens when your favorite games are civ and satisfactory but you want to create a cozy game. The urge is strong
Hi
I got a job in the gaming industry without any experience or contact in this field. At first, my job was super easy and I’ve been told what to do daily. Now, I’m in the situation where I have to “own” things and push to make it happen.
Never in the industry or close to such a role with power.
The truth is I try to keep up but there’s so much I don’t understand. English is not my main language.
Most of the team talks in technical terms and I feel like a 5 year old on bring your kids day unless I can participate when it’s about common sense things.
In my spare time I improve my knowledge and also work speed but I’m bad at teaching myself or knowing what to search for. My colleagues are very talented and often 10+ years in the industry and I’ve been told by my manager it is a bad sign to ask about basic knowledge. Again, feeling like a 5 year old.
In short, my manager is fully supporting me and is happy about my performance already planning more responsibilities but I don’t know how to teach myself and can’t request help for basic knowledge of my other colleagues.
The job made my life so much better and I always dreamt to be working on games soooo I’m ready to do a lot to stay.
How did you get into the industry?
Does it make sense to take any courses even if I don’t understand what’s going on?
Should I leave the industry before reality hits me?
Hey!...I'm a first-year software Engineer student who's currently building an NES emulator from scratch for learning purposes. And I'm aspiring to work for one of the big gaming companies (sega, nintendo, capcom)
Is it a bad idea to include the emulator that I'm working on with the portfolio WITHOUT ANY ROMS OR BIOS OR ANY ILLEGAL THING
I've heard it's one of the strong projects you can include inside your portfolio
| I don't have the words, that's a very impressive visual upgrade, and making the jump from UE 4.15 to UE 5.X must have been one hell of a challenge, especially since they were using their own custom version of UE 4.15. Has there ever been such a technological update for any game at all? Nevermind a game NOT using a subscription?? And a game that is mostly carried by mods no less! I am both in shock, in denial, and amazed. Well played. [link] [comments] |
Hey, all!
I’m developing an Indie game that is basically a 2d top down animal survival sim. Im running into the issue of needing top down (3/4ths) for its flexibility, but I still want beautiful scenery. My sprite is going to be 2 sided (left and right).
How would I go about merging top down and side scroll? For example, I want the player to be able to be topdown, but say as they approach a sunset beach it merges into almost a side scroller so the player can have the beautiful background with a parallax. I’m not sure if this makes any sense.
If this doesn’t seem feasible, what other options should I try? I’m lacking in how to explain to an artist what I need.
If anyone has any insights I’d appreciate it!
Instead of a traditional quest system, I’m building a topic-based conversation system.
Basic idea:
So instead of:
It’s:
From a dev standpoint, it’s basically:
HashSet<string> KnownTopicsSimple in code… but potentially complex in content design.
My concern:
Has anyone built something like this before?
Hello, everyone!
I'm currently participating in Godot Wild Jam #92, and the theme inspired me to turn my project, Hemobar, into a full commercial game.
The Concept: You play as a bartender serving various creatures and monsters, but there's a catch: the main ingredient of every drink is your own blood. You have to balance your health while keeping customers satisfied.
The Dilemma: Early testers have mentioned the game gives off a heavy Papers, Please vibe. Currently, I'm using my own "programmer art" (2D pixel art). I'm at a crossroads:
I would love your thoughts on the art direction and the core loop.
You can play the game free in web on itch.io , game is called "Hemobar"
Thanks in advance for any critiques or advice!
P.S. I'm not sure if the link to the game would be counted as a promo so I'm not posting direct link. I'm sorry.
I'm at the very start of my "GameDev career" (as in I just started learning how to program), so my views on this might change a lot. But joining this subreddit really makes me curious.
Obviously, a big topic in this subreddit is how to make money. Very understandable, considering how much knowledge and times game development takes. For me personally, though, it seems like all the stress and anxiety is not really worth it, considering how niche my games will be (if I finish them).
Which in turn makes me wonder: How many people are there who make games with no commercial interest?
| i'm dave, and i'm so excited to share the trailer for my space colony simulator game: STELLA NOVA. i built the whole thing from scratch in rust and it's lightning fast. check out our steam page : https://store.steampowered.com/app/4474070/Stella_Nova/ and www.davesgames.io to learn more! [link] [comments] |
I'm a user of renderers; I don't write them. I have a virtual world client that needs one. First I used Rend3, which was abandoned. I had high hopes for Renderling. But, at the three year point, it seems to have run into the problems that killed Rend3, Three and Orbit. Everybody does My First Renderer, gets to the hard parts, then gets stuck.
As with Rend3, the author is more interested in the lower levels. So the Renderling author is off writing a shader compiler. He also got into doing his own the 2D GUI, another classic time sink. His roadmap shows that the next step is something to assist with moving data in bulk from CPU to GPU. Maybe in 2027 he might get back to the renderer level.
This job appears to be too big for one person. I had real hope for Renderling. That guy has EU funding. He does good work. But it's not the work that gets the renderer done. The Rend3 guy was good, too. He moved down to the WGPU level.
Some of this problem is architectural. A standalone renderer, without its own game engine, is hard. It doesn't own the scene graph, but sometimes needs to be able to query it, or cache some parts of it. Without that, shadow and occlusion processing are too slow and don't scale. It has to provide concurrent GPU content updating. But that's only meaningful with the right API. You don't hit the architectural problems until you have a working My First Renderer. Then it's too late to build a high-performance renderer.
Some people have questioned whether a standalone renderer, separate from a game engine that owns the scene graph, is a good idea, or even possible. This is a tough layering problem - application->renderer->glue layer (WGPU/vulcano)->GPU interface (Vulkan, Metal, DX, even OpenGL). Where the cut points should be for safe Rust is not obvious. Cut at the wrong places and you hit a performance wall.
This may kill my Sharpview project, for which I need a fast multi-threaded renderer. I'm stuck with trying to maintain a fork of Rend3 despite WGPU churn, I don't have time, and it's never going to load assets fully concurrently without major work.
Six years, and there's still no good Rust renderer for big dynamic scenes. Bevy is good, but doesn't address the big-world problem, for which you need to get the content loading off the main thread and use a separate transfer queue to the GPU.
I probably should have used C++.
go-openngc is a Go port of PyOngc for querying the OpenNGC deep-sky catalog (~14K NGC/IC/Messier objects).
Notes:
go generate, no CSV parsing at startup.go obj, _ := ongc.Messier(31) // NGC0224 sep, _ := ongc.GetSeparation("M31", "M32")
Feedback welcome.
| LFK is a lightning-fast, keyboard-focused, yazi-inspired terminal user interface for navigating and managing Kubernetes clusters. Built for speed and efficiency, it brings a three-column Miller columns layout with an owner-based resource hierarchy to your terminal. [link] [comments] |
Im working on deploying Gatus application on ECS with launch type EC2, Gatus is an app health dashboard which tests connection to different domains and paths.
As part of increasing security posture of the image/dockerfile, I changed the runtime to non root user, for context my runtime is using scratch so no distro. When I deployed my image locally or on ECS, all the icmps are failing. After a bit of research it seems like the non root user can not use NET\_RAW capabilities and it is because /etc/passwd is missing, not sure.
AI suggested using NET\_RAW in the task definition which I did but for some reason that doesn't work either.
It seems like the best solution seems to be to use alpine at runtime but then I will be using a larger image which I'm trying to avoid.
What are my options, and is there a way to still use scratch?
\`\`\`
FROM golang:alpine AS builder
RUN apk --update add ca-certificates
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod tidy
COPY . .
\# Build optimized binary
RUN CGO\_ENABLED=0 GOOS=linux \\
go build -a -installsuffix cgo \\
\-trimpath -ldflags="-s -w" \\
\-o gatus .
FROM scratch AS runtime
\# NETRAW added to task definition
USER 1001:1001
WORKDIR /app
COPY --from=builder /app/gatus /app/
COPY --from=builder /app/config.yaml /app/config/config.yaml
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
EXPOSE 8080
ENTRYPOINT \["./gatus"\]
\`\`\`
I’ve spent years reaching for Makefile by default, but I recently started using Taskfile for my projects instead. While it’s still the industry standard, it often feels like a mismatch for the specific needs of a modern web stack… Since moving a few of my workflows over, I've found it much better suited for the way I work today (it is my opinion).
Here are three features that convinced me:
=> Self-documenting by design
With Makefile, just getting a readable help output requires a cryptic grep | awk one-liner that's been copy-pasted between projects for 40 years. Taskfile simply has a built-in desc field for each task, and running task --list instantly shows everything available with a clean description. It's a small thing, but it makes onboarding new developers (or just returning to a project after a few weeks :) ) so much smoother.
=> Truly cross-platform without hacks
Make was designed for Unix. The moment someone on your team opens a PR from Windows, you're suddenly wrestling with OS detection conditionals, WSL edge cases, and PowerShell compatibility. Taskfile was built cross-platform from day one. It uses sh as a universal shell by default, and if you do need platform-specific commands, there's a native platforms field that handles it cleanly at the command level. No more fragile branching logic.
=> Built-in validation and interactive prompts
Adding a confirmation prompt or a precondition check in Make means writing verbose, bash-specific shell code that breaks outside of bash. Taskfile has prompt and preconditions as first-class features: one line to ask for confirmation before a deploy, another to verify an env variable is set. It works on every platform, out of the box, no shell scripting required.
In my opinion, Taskfile feels like a much more predictable and modern successor!
I wrote a deeper dive with specific code examples on how these features work in practice ;)
How much Go code do you need to ship an OpenAI-compatible provider?
About 84 lines for chat-only. 126 for one with embeddings and account-ID URL quirks (Cloudflare Workers AI). 132 with regional routing
GoAI v0.7.2 added Cloudflare Workers AI and NVDIA NIM. The refactor pulled shared plumbing into a single factory in `internal/openaicompat` — 15 providers now share 334 lines at 99.8% coverage.
Pattern that kept it small:
• Split public surface (`cloudflare.WithAccountID`) from plumbing (HTTP, token resolution, error parsing)
• Variations as config fields, not plugins
• Compile-time interface assertions catch breaking changes at build
• Behavioral tests via http.RoundTripper
Go's stdlib (`net/http`, `httptest`, `internal/` visibility) + functional options + implicit interfaces did most of the work.
Full walkthrough: https://blog.anh.sh/anatomy-of-an-openai-compatible-provider-in-go
I've been learning Go and ran into something that I can't find a clean solution to.
When a function accepts an interface like http.ResponseWriter, I know the concrete struct coming in satisfies that interface's requirements. But because Go uses implicit interface satisfaction structs never declare what they implement I have no way of knowing what OTHER interfaces that same struct might also satisfy.
For example, ResponseWriter has a Write method. That means the underlying struct might also satisfy io.Writer, which would let me use functions like fmt.Fprintf on it. But there's no way for me to know that just by looking at the interface definition or the function signature. The struct doesn't declare it. The interface doesn't mention it. The IDE just shows me the same docs.
So my conclusion is that Go's implicit interface system creates a real discoverability problem. You can't trial and error your way to a solution either, because trial and error assumes you at least know what to try. If you don't know the concrete type also satisfies io.Writer, you won't even think to try fmt.Fprintf.
The common suggestion is to type assert at runtime:
if iw, ok := w.(io.Writer); ok { ... }
But that doesn't solve the discoverability problem. To write that check you already need to know or suspect it's an io.Writer. If you don't know it exists in the first place, you won't know to check for it. So you're back to square one.
The only workarounds I can see are:
Find a sample and see what others do with it
Ask AI what other interfaces the concrete type might be satisfying
Is there something I'm missing or is this just a known tradeoff in Go that the community accepts?