Tuesday, June 9, 2026
2c89e478-2382-46b9-8231-dadf6466ce2a
| Summary | ⛅️ Clear until afternoon, returning overnight. |
|---|---|
| Temperature Range | 20°C to 27°C (68°F to 81°F) |
| Feels Like | Low: 72°F | High: 92°F |
| Humidity | 79% |
| Wind | 10 km/h (6 mph), Direction: 221° |
| Precipitation | Probability: 0%, Type: No precipitation expected |
| Sunrise / Sunset | 🌅 05:34 AM / 🌇 07:59 PM |
| Moon Phase | Waning Crescent (79%) |
| Cloud Cover | 12% |
| Pressure | 1010.65 hPa |
| Dew Point | 68.68°F |
| Visibility | 6.12 miles |
The government is promoting a National Food Safety Authority, which will be tasked with coordinating and supervising official controls by services and laboratories, and drafting a unified national strategy for food safety and hygiene throughout the food chain, Health Minister Neophytos Charalambides said on Monday.
Marking World Food Safety Day, celebrated on June 7, Charalambides said the day “reminds us that access to safe and quality food is not only a basic prerequisite for ensuring public health, but also a fundamental right of every person”.
He described food safety as “the core of health prevention and protection, directly linked to the quality of life, the well-being of the people, consumer confidence and the sustainable development of our society”.
“Safe food is everyone’s right and everyone’s responsibility,” he said.
The slogan for this year’s World Food Safety Day was From Burden to Solutions, Safe Food Everywhere.
“It calls on us to move beyond simply identifying problems and to focus on implementing specific and effective solutions,” Charalambides pointed out.
He said the message was clear. “Scientific data is the basis for developing targeted policies, effectively managing risks and making informed decisions, always with the protection of public health in mind.”
Every solution for safe food starts with early identification of the problem and proper risk assessment, he said.
Charalambides added that “behind every documented decision for consumer protection lies reliable scientific data.”
“In this context, the general laboratory of the health ministry is the main pillar of producing this data, providing scientific documentation and offering specialised support to the authorities,” he said.
The approach the health ministry takes is based on the philosophy encapsulating scientific knowledge, cooperation of all stakeholders involved and preventive action at every stage of the food chain.
Charalambides said the general laboratory’s role was important in producing reliable testing of food, implementing European and national legislation, providing scientific support for decision-making and risk management, and informing and protecting consumers.
Every year, thousands of laboratory tests are performed on food, water and food contact materials. These tests allow for the early identification of potential risks, resulting in corrective measures that protect public health.
The minister pointed out that the health services, tasked with the implementation of food legislation, work closely with all parties involved to develop and implement a comprehensive food safety policy.
“Food safety is a collective responsibility. From primary production to the consumer’s table, every link in the food chain plays a crucial role in ensuring food quality and safety,” he said.
Cyprus also participates in various initiatives, including the European #Safe2Eat campaign, aimed at cultivating public awareness and a culture of knowledge, responsibility and trust.
A body in advanced decomposed state was found in an apartment in A body that had been in an advanced state of decomposition was discovered in a flat in Larnaca on Monday.
“All appropriate actions are being taken based on relevant protocol and examinations to identify the body,” said Larnaca police spokesperson Spyros Chrysostomou.
According to Chrysostomou, the fire service opened the apartment door due to a strong odour.
Investigations into the case are ongoing.
Animal rescue groups organised under the Cyprus Voice for Animals (CVA) said on Monday they would pause all trap-neuter-and-release (TNR) programmes for stray cats until further notice in protest over the lack of security measures.
“We need authorisation cards from the agriculture ministry that make clear that we can continue to neuter animals,” the CVA’s Danae Kaza said.
Speaking to the Cyprus Mail, Kaza said that following recent rumours about alleged cat kidnappings from homes, the groups had repeatedly become targets of attacks.
She requested the issuing of official authorisation to neuter the animals, as the groups currently neuter around 100 animals per week.
“For months, volunteers have been subjected to complaints, threats, verbal abuse and even physical attacks while collecting cats for sterilization, often at their own expense and without any governmental support. Instead of being protected, these individuals have been taken to police stations and treated as offenders,” CVA said in a corresponding statement.
CVA warns that the pausing of the program will lead to uncontrolled breeding, putting municipalities in a position to “manage a situation that is rapidly spiraling out of control”, with the animals suffering even more.
“We express our profound disappointment and indignation, as this has become a necessary measure to protect our volunteers,” the group said.
A fire that broke out at a vehicle paint shop in Kokkinotrimithia in Nicosia was brought under full control by the fire service on Monday evening.
According to fire service spokesman Andreas Kettis, vehicles inside the shop were burned, as well as equipment.
Investigations into the incident are ongoing.
Social welfare services should have taken custody, at least temporarily, of a teenager who ended up taking his own life in 2019, a witness told Nicosia district court on Monday.
Independent criminal investigator Andreou Andreou was testifying in the case concerning the suicide of 14-year-old Stylianos Constantinou.
The case relates to alleged ongoing domestic violence by the boy’s father, the mother’s role in reporting these incidents to authorities, and the role played by the social welfare services and the police.
In May, two defendants – welfare officers – pleaded guilty to charges and received suspended prison sentences.
In court on Monday, Andreou was being cross-examined by the attorney of the third defendant, also a social welfare officer.
Asked whether there had been any direct evidence of the teenager having bodily injuries from violence, Andreou said no. There were no medical reports to that effect.
But, he noted, there had been multiple reports that Stylianos showed up at school with bruises. The boy had claimed he was beaten with a belt, saying his father would “beat him like a dog” at the family-owned farm.
The social welfare officer in the dock used to be in charge of Stylianos’ file.
Her logs, which Andreou reviewed, made no explicit reference to the teen being in imminent danger.
“I’m not saying that no action whatsoever was taken,” the witness stated. “But neither a proper investigation was made, nor the appropriate direct action taken.”
Some incidents of alleged violence appear not to have been relayed to the police.
Under the manual, whenever welfare officers have reason to believe that domestic violence takes place, they must report the matter to the police.
“What led me and Mr Poyadjis [the other criminal investigator] to recommend potential commission of specific criminal offences,” went on Andreou, “was that from kindergarten right up to second grade in high school, whatever happened to protect Stylianos appears not to have been enough.
“The situation was out of control.”
He added: “Had Stylianos been removed from his parents, perhaps today he might still be alive. I believe that, under the circumstances, and based on the information we had in 2010-2012, Stylianos should have been placed in the care of the social welfare services, even for a brief amount of time, to ensure his protection.”
Elsewhere in his testimony, Andreou again referred to the defendant’s log. During a visit to the family residence, the welfare officer in question had reported seeing an assembled shotgun on a bed. In another log, she had mentioned that Stylianos’ father once went to the boy’s school taking the gun with him.
All this, said the witness, in conjunction with other information in the boy’s file, should have prodded the social welfare services to “act directly” – which they did not.
The defendant’s lawyer next cited policy at the time, according to which taking a child away from their parents was the “last resort”.
While agreeing this was the policy, Andreou said it wasn’t necessarily the correct one.
The trial continues on Tuesday.
Fidias Panayiotou, leader of Direct Democracy, explained in his own straightforward way over the weekend why his party backed Disy’s Annita Demetriou for House president, arguing that Demetriou would have won anyway.
At times using crude language, the 26-year-old TikToker gave an inside look at the horse-trading preceding the vote for the House president.
“Annita would have been House president anyway,” Panayiotou said in a short video clip he posted on social media.
Breaking down the numbers, he explained his party’s thinking behind backing a candidate for House president rather than abstaining.
With Direct Democracy’s four votes, plus the 17 from Disy, Demetriou would have received 21 votes in the first round, ensuring she went through to the second round.
The other option for Direct Democracy, Panayiotou said, was to support Diko’s Nicholas Papadopoulos. In this case, Papadopoulos would have received eight votes from Diko, another eight from Elam, and four from Direct Democracy, for a total of 20. However, Elam voted for their leader Christos Christou in the first round, as they had said they would.
In this scenario, Demetriou would have garnered only 17 votes from Disy, with Akel’s Stefanos Stefanou getting 15 from his own party plus four from Alma, for a total of 19.
That would have left Demetriou out of the second round of voting.
“Anything else, like supporting Akel, or abstaining, would’ve got Annita re-elected,” Panayiotou asserted.
Had Direct Democracy backed Stefanou, the latter would have got 23 votes – 15 from Akel, plus four from Alma, plus four from Direct Democracy.
However, in this case Diko would have supported Demetriou, giving her 25 votes.
Given the arithmetic, said Panayiotou, the choice for his party was clear – either abstain and see Demetriou elected House president, or endorse Demetriou and get something for it.
The social media influencer and MEP said that in the run-up to the election for House president, he had met both Demetriou and Papadopoulos.
Papadopoulos was even willing to make a video with Panayiotou announcing their collaboration for the vote.
In the end, he made the video with Demetriou, where the two committed to three policy proposals: raise the minimum pension to €1,088 so it aligns with minimum wage; have 10,000 affordable residential units built on state land; and provide up to €15,000 in child benefits to mothers.
“I met twice with Annita and sounded the alarm – if you don’t agree to this, Direct Democracy will not back you, and you’ll be left out of the second round,” Panayiotou said.
Initially Demetriou was not “very responsive”, he added.
“But one day before [the vote] when they [Disy] realised that Papadopoulos agreed to make a joint video and collaborate, Disy shat themselves, fearing they wouldn’t be able elect a House president, and that would be a huge blow to Disy, the biggest party.”
At that point, according to Panayiotou, Disy “agreed to everything”.
The social media influencer acknowledged it would be difficult for the three policies to become reality.
But he said his party now has a say in parliament with their four MPs, and together with Disy’s 17 MPs they could use their leverage when voting on the state budget.
Still, Panayiotou stressed, this transient partnership with Disy constitutes neither a “blank cheque” nor does it represent “a united front” for the 2028 presidential elections.
“We had the opportunity to have a small impact, we couldn’t have done something different, anything else would have left us with nothing.”
Meanwhile for his use of such a vulgar remark in referring to Disy, Panayiotou was rebuked by Diko spokesman Chrysis Pantelides.
“His vocabulary is unacceptable, to say the least,” posted Pantelides.
“He ought to respect not only those he is referring to, but also the public that is listening to him.”
Disy leader and newly re-elected House president Annita Demetriou said on Monday she feels “safe” amid ongoing police investigations into death threats sent by email.
“Yes of course I feel safe,” she said when asked by journalists about the affair.
“As should any politician feel safe to freely express their views.”
They were her first remarks since the incident came to light.
Demetriou added she was waiting for the police to wrap up their investigation, and was confident it would give answers.
Sources on Monday said the police investigation is continuing into the threats against Demetriou’s life.
The same sources told the Cyprus News Agency that police chief Themistos Arnaoutis had ordered an internal probe as well, as the email appears to have been leaked from within.
The sources said Demetriou spoke with Arnaoutis and that her head of security is in constant contact with the police.
Meanwhile, visible and undercover security measures have been taken to protect Demetriou.
On Friday, Disy spokesman Onoufrios Koulla confirmed an email had been received claiming that an assassination attempt was being planned against Demetriou, following a social media post by online personality Ioanna Photiou, who is better known by her alias ‘Annie Alexui’.
According to the post, the email said: “Hello. I have very important information regarding the safety of Annita Demetriou’s life. I know that an assassination attempt is being prepared against her. They want to eliminate her.”
Roof insulation works at the Saint Varnavas monastery in the Famagusta district village of Engomi are nearing completion, the United Nations Development Programme (UNDP) said on Monday.
“A recent monitoring visit brought together UNDP, the Technical Committee on Cultural Heritage and its Advisory Board, project managers, local bodies and the community to review progress on site,” UNDP said.
Restauration works at the monastery began in late April with the works on the church’s roof funded by the European Union and implemented under the technical supervision of the UNDP.
President Nikos Christodoulides on Monday received House speaker Annita Demetriou at the presidential palace to congratulate her on her recent re-election.
“The challenges and problems are shared. Therefore, cooperation will always continue for the benefit of the citizens,” he said.
Christodoulides expressed his hope that the fruitful cooperation between the executive and legislative branches would continue.
Demetriou, on her part, equally expressed her optimism about the future cooperation with the palace.
She added that there were major challenges, reforms, and pending bills, assuring that she will do everything in her power to address them, representing all her colleagues as well as acting on a practical level.
Regional developments were on the agenda as President Nikos Christodoulides met Greek Defence Minister Nikos Dendias at the presidential palace on Monday to brief him on Cyprus problem updates.
“Today we had a very important meeting with the UN Secretary-General’s Personal Envoy [Angela Holguin]. We will discuss all of this, and I have also seen a statement from the Turkish presidency; we will discuss that as well, along with a statement from the [north],” Christodoulides said.
Dendias thanked the president for welcoming him and congratulated him on the work of Cyprus throughout it presidency of the EU Council, which ends at the end of the month.
“I would like to take this opportunity to congratulate you on the Cyprus Presidency, on how a small country has managed to hold the Presidency of the European Union for six months with great success,” he said.
Dendias acknowledged Defence Minister Vasilis Palmas’ accomplishments as the chairman of the informal council of defence ministers held earlier in the day, stressing that his input had led to a substantial discussion on common security.
“Today we have a very substantial discussion on the issues of our common security, as you said earlier, something that concerns both Greece and Cyprus very much, which is the creation of a single defence space, a perception of the European Union, a curation of defence programmes and an evolution of the defence capability, so that we can defend this unique area of democracy and protection of human rights that is the EU,” he said.
A 28-year-old man sentenced to three years in prison for stealing €20, which he later returned, is being set free 11 months into his term.
The appeals court on Monday overruled the court of first instance, taking into consideration the circumstances of the offences and the man’s personal situation.
He had been stopped by the police in July 2025 for inspection, following a series of attempted kiosk robberies by a man with a knife in Strovolos.
In October 2024, the man had attempted to rob two kiosks and managed to leave with €20 from the second scene.
When questioned, the man admitted to committing the crimes and returned the stolen money.
Having had a clear criminal record until then, he was handed concurrent prison sentences, with the longest being three years.
He then got a new defence lawyer, who appealed the sentence.
Maria Athanasiou told the appeals court that the prison sentence was unfair and harsh, and that neither his personal conditions nor his reintegration difficulties had been taken into account.
The prosecution, however, defended the court of first instance ruling, saying it was not an isolated incident but four different ones, during which the man bearing a knife had entered kiosks and bakeries demanding cash.
It also said the man’s personal conditions had been taken into consideration, including that he was a drug addict and had a family.
The appeals court heard that the man has suffered childhood trauma, had been abandoned, bullied and experienced loss, leading to his drug addiction, personality disorders and self-destructive behaviour. He had also lived in foster homes.
The court recommended further investigation into a possible family history of psychiatric issues, as well as if the appellant was in the autism spectrum.
The court said the man’s sentence was strict but not excessive, however the court of first instance could have passed suspended sentences, given that the man had already been in custody at the central prison for 11 months.
The appeals court suspended the sentence to “give him a second chance”.
The next enlarged meeting on the Cyprus problem will take place in either July or August, United Nations envoy Maria Angela Holguin said on Monday after holding a meeting with Turkish Cypriot leader Tufan Erhurman.
“We had a very productive meeting with Erhurman, as well as with [President Nikos] Christodoulides this morning. We are preparing a five-plus-one meeting with [UN Secretary-General Antonio Guterres]. We do not know yet the exact date, but [it will take place] in the coming months,” she said.
She added that as such, “I am quite positive and optimistic, so we can continue to push for that meeting, and hope we can have good results”.
Asked whether the resumption of negotiations aimed at resolving the Cyprus problem will be announced at that enlarged meeting, she said, “we do not know, we will see what happens at that meeting”.
“This would be very good news, but I prefer to wait,” she added.
She then confirmed that she will meet both Erhurman and Christodoulides again over the weekend, before travelling to Ankara to meet Turkish Foreign Minister Hakan Fidan in Ankara on Monday, and then to Athens to meet Greek Foreign Minister Giorgos Gerapetritis.
Earlier in the day, Christodoulides had also been asked whether any dates have been discussed for when an enlarged meeting could be held, and though he answered in the affirmative, he stressed that that “I cannot make them public” as “it would not be right”.
“I have been working on some dates, but it will be a long summer,” he said.
Holguin’s visit comes with sources having informed the Cyprus Mail that Turkish President Recep Tayyip Erdogan has green-lit the “new initiative” being undertaken by the UN with the aim of bringing about a resumption of formal negotiations on the Cyprus problem.
Erdogan is said to be of the view that the lack of a solution to the Cyprus problem has “unduly cost Turkey through no fault of its own” in recent decades.
The sources said that Turkey’s support of both the 2004 referendum and the 2017 negotiations, both of which were rejected by the Greek Cypriot side, constitute evidence of Erdogan’s “pragmatic and constructive stance” and “will to engage in the hope of securing a solution to the Cyprus problem”.
The question of when a “new initiative” on the Cyprus problem may be undertaken has been ongoing for weeks, with Erhurman having said a month ago that such an initiative will begin in July, following the conclusion of Cyprus’ six-month term as the holder of the Council of the European Union’s rotating presidency.
However, the Greek Cypriot side has insisted that such an initiative is “already underway”, with government spokesman Konstantinos Letymbiotis having said that Christodoulides had “made public this initiative” after he met Guterres in Brussels in March.
Cyprus’ Scientific and Technical Chamber (Etek) on Monday presented a new roadmap to upgrade the centre of Nicosia.
“The aim of the report is to formulate a realistic and implementable policy framework for the substantive revitalisation of the capital’s city centre,” Etek said.
It described the upgrading of the centre as a matter of “national importance”, stressing that revitalisation works had direct implications for social cohesion, quality of life, housing and the country’s image.
“A central theme of the report is the need to move from formulating plans to the organised and measurable implementation of policies and projects,” Etek said.
It proposed the creation of a “delivery office” for Nicosia’s urban centre which could in the future be in charge of monitoring the progress of projects, the management of issues, and unified planning measures.
Further measures listed in the chamber’s report included the simplification of permitting procedures for changes of use and minor interventions, financial incentives for renovations, as well as the boosting of residential occupancy and the promotion of cultural and social activities.
“The revitalisation of Nicosia’s urban centre cannot be achieved through isolated projects or piecemeal measures. A unified strategy, coordinated implementation, and ongoing political oversight are required,” said Etek president Constantinos Constanti.
Makarios Avenue would serve as the first pilot site for the new strategy, with Etek announcing plans for “low-cost interventions, shading, lightning and the organisation of events” to improve the daily life of residents.
Cyprus and France took another step towards closer defence cooperation on Monday, signing an agreement aimed at making it easier for their armed forces to operate together and French troops to be positioned on Cyprus soil.
The agreement was signed in Nicosia by Defence Minister Vasilis Palmas and his French counterpart Catherine Vautrin on the sidelines of the informal meeting of EU defence ministers hosted by Cyprus.
The deal, known as a Status of Forces Agreement (SOFA), establishes the legal framework governing the presence and activities of French military personnel in Cyprus and Cypriot personnel in France.
Palmas described the signing as the culmination of an already close and expanding defence relationship built on mutual trust and shared strategic interests.
“The agreement establishes a modern and comprehensive framework for cooperation in the fields of defence and security, regulating the rights and obligations of the forces of both countries when present on each other’s territory,” he said.
The signing follows the strategic partnership agreement concluded by Presidents Nikos Christodoulides and Emmanuel Macron in Paris last December, which both sides described as a milestone in the steadily deepening relationship between the two countries.
Palmas said Cyprus and France cooperate closely on regional security issues, defence procurement and military partnerships across all sectors of defence and security. He also highlighted the two countries’ participation alongside Greece and Italy in a quadrilateral cooperation mechanism.
He said cooperation between the two countries was evident both operationally, through the regular presence and facilitation of French military forces in the region, and institutionally through joint initiatives within the European Union and other international frameworks.
The minister also referred to developments in the Eastern Mediterranean and the Middle East, thanking France for its rapid response during the regional crisis earlier this year when a drone struck Akrotiri.
“I had the opportunity to once again thank Minister Vautrin for France’s immediate response and the deployment of forces within the territorial waters of the Republic of Cyprus during the recent crisis in the region,” Palmas said.
He added that strengthening ties with France reinforced Cyprus’ role as a pillar of stability in the Eastern Mediterranean and reflected the Republic’s commitment to partnerships based on common values, respect for international law and the promotion of regional security.
Vautrin described Cyprus as a key strategic partner for France and an essential hub for French military operations in the Eastern Mediterranean and the Middle East.
“Cyprus is an essential support point for the conduct of our military operations in the Eastern Mediterranean and the Near East,” she said.
She noted that the ports of Larnaca and Limassol host around 30 French naval visits annually, with 21 already recorded since the beginning of this year.
The French minister highlighted the extensive cooperation between the two countries’ armed forces, pointing to joint naval exercises, including Argonaut and Eunomia, aimed at strengthening maritime security, freedom of navigation and crisis response capabilities.
She said cooperation had also expanded in recent years to include land and air operations, military mobility, air defence, operational readiness and logistical support.
“In the air domain, Cypriot infrastructure provides an ideal framework for our logistical support, as well as surveillance and air defence capabilities that are invaluable to our deployed forces,” she said.
Vautrin also emphasised France’s support for the modernisation of Cyprus’ armed forces, describing defence cooperation as a central pillar of the bilateral relationship.
The minister reiterated France’s support for Cyprus, recalling that during the regional security crisis in March a French frigate participated in the island’s air defence while the French carrier strike group was repositioned in the Mediterranean.
“This is our illustration of what European defence is,” she said.
Vautrin said the newly signed SOFA would facilitate cooperation between the two countries’ armed forces but stressed that it should be viewed as another step rather than the final destination.
“This agreement is not an end in itself. It is a stage in the strengthening of military cooperation between our two countries,” she said.
Both ministers said the agreement would help deepen defence cooperation at a time of growing instability in the Eastern Mediterranean and wider region, while supporting broader European efforts to strengthen security and defence capabilities.
A strong warning against the illegal use of the title psychologist was issued by the Cyprus Psychologists Registration Council on Monday.
It has adopted a zero-tolerance policy following a recent conviction of someone falsely claiming qualifications.
The Limassol criminal court last week found an unregistered psychologist guilty of sexually abusing a 17-year-old patient, exploiting their trust through inappropriate actions like kissing and touching.
The council emphasised that using the title “registered psychologist” without being accredited is a criminal offence.
It clarified that being listed in the register of graduate psychologists does not allow independent practice.
Graduate psychologists may only work in limited roles, such as teaching, research or referral interviews, and must do so under proper conditions.
Independent practice, including patient diagnosis and treatment, is reserved for registered psychologists.
The council said it takes all complaints seriously and aims to protect the public, especially minors, from unqualified practitioners.
It also urged the public to verify the credentials and registration status of anyone offering psychological services before seeking treatment or consultation.
The European Council on Monday approved a European Union law to “reinforce” the rights of victims of crime to receive information, support and protection via a new EU-hotline available via 116 006, Justice Minister Costas Fitiris said on Monday.
“No one should have to face the aftermath of crime alone. With the EU-wide helpline 116 006, victims anywhere in the EU can access information on their rights, as well as support and guidance when they need it most,” he added.
Through the helpline, victims will receive emotional support, guidance on available support services and further information on their rights.
In addition to the hotline, the EU announced plans to facilitate easier crime reporting by allowing victims to report criminal offences online and submit evidence electronically.
Furthermore, the EU is planning to introduce tailored support services for children, including age-appropriate protection measures and psychological support.
The directive is set to be published in the official journal in July 2026 and will enter into force 20 days after publishing, with member states being granted two years to transpose the directive into national law.
A conference on mosquito-borne diseases will take place in Nicosia on Wednesday during a “critical juncture for public health in Europe,” the health ministry said on Monday.
The conference is part of Cyprus’ presidency of the Council of the European Union.
Conference attendees will share experiences with recent outbreaks, including the appearance of the Aedes aegypti mosquito in Cyprus, and discuss challenges and innovative approaches to controlling mosquitoes.
The conference also seeks to improve European disease coordination and cross-border public health preparedness.
Vector-borne diseases, especially those transmitted by mosquitoes, are a growing public health threat.
Climate change and the growing geographic movement of mosquitoes have increased the spread of diseases, the health ministry said.
“Mosquito-borne diseases pose a growing challenge that requires enhanced preparedness, surveillance and coordinated European action,” it added.
Attendees include the European Centre for Disease Prevention and Control, national public health authorities, representatives from the European Commission and other scientists and experts.
Emerging disease threats include dengue fever, chikungunya virus, Zika virus, yellow fever and West Nile virus.
Food is not generally thought of as a record of history. But, recipes get handed down, meals are repeated, and habits turn into routines. In Cyprus, familiar dishes often hold signs of something larger, like migration, memory and cultural exchange.
For families on the island and those that have moved away, traditional dishes mean more than just recipes passed down. They help people keep their identity, remember places they left, and adjust to new lives while still holding onto their past.
Food has always been an integral part of the culture for Cypriots who have moved away from the country and have tried to recreate their culture wherever they have settled.
“When my family arrived in Canada as refugees from Cyprus, food become one of the most powerful ways we held on to home,” says Irene Matys, author of My Cypriot Table. “We had left behind the life we knew, our extended family, but in the kitchen, my yiayia and mama kept those memories alive.”
Eliopita baking in the oven, halloumi sprinkled over the pasta, lamb souvla at Easter, all these memories were kept alive in the kitchen. “Cooking those dishes wasn’t just about feeding the family; it was about recreating a sense of belonging in a new country,” she says.
While the role of food preserving identity across cultures is common, in Cyprus it is frequently passed down within families rather than through formal instruction. As Matys puts it, this becomes a form of “living memory”.
“When families leave their homeland, so many aspects of life change,” she says. “But recipes travel with people… Cooking those dishes becomes an act of cultural preservation. It’s a way of saying, this is who we are, and this is where our story began.”
Cypriot cuisine is a perfect example of a tradition that was formed under the influence of many cultures. Located geographically between Europe and the Middle East, Cyprus has adopted culinary influences from a variety of cultures, including the Greek and Ottoman cuisines, and Levantine flavours, often without being able to draw clear distinctions between them.
“In our family kitchen, those influences are blended naturally,” Matys says. “Growing up, we didn’t think about it as layers of history, it was simply the food our family cooked.”
For the younger generations of Cypriots living abroad, it has often been a more conscious effort, one of discovery rather than inheritance. British Cypriot home cook now based in Sydney, Nikoletta Nicolaou describes food as a means by which she bridges distance, both that which separated her from her native country, as well as from her loved ones.
“Cooking is how I stay connected to it,” she says. “It keeps my culture and heritage alive and allows me to share it with my two little girls and friends that I’ve made here”. Growing up between cultures, she explains, allowed her to understand what was unique about Cypriot food. “Cypriot food represents comfort, family, and generosity,” she says. “It’s the kind of food that is meant to be shared around a table with your people.”
Some of her most vivid memories are associated less with delicate or complictad dishes and more with common meals. “Things like louvi, keftedes, or a plate of makaronia me keima immediately take me back to being in my yiayia’s kitchen,” she says. “Everything was instinctive, a pinch of this, a splash of that”.
The act of moving overseas can change the meaning of beloved meals. “When you move further away from where your family is, food starts to become a connection to back home and a source of comfort,” Nicolaou says. “Especially now that I have children, it means so much more. Cooking these dishes isn’t just about nostalgia – it’s also about passing something down.”
While food remains an important link for those who live outside their homeland, there are also changes in eating habits within Cyprus itself. According to food blogger and writer Paola Papacosta despite changes in the preparation of food, tradition remains an important part of the everyday eating habits of Cypriots.
“Cyprus cuisine is incredibly broad, shaped by centuries of history, cultures and influences,” she says, highlighting the common patterns of shared meals.
Despite being more modern, families keep the tradition alive. “We always have a salad in the centre, or tomatoes, and cucumber with olive oil, lemon and sea salt, regardless of the main dish,” she says. “Lemon is always on the table because lemon goes with everything.”
At the same time, she explains that there have been changes in the rate at which traditional home cooked food is prepared.
“When I was young, we had traditional dishes every day.” She says, listing meals that were prepared according to a weekly cycle. “We don’t eat this kind of food every day anymore, but we do try and keep a lot of the dishes and definitely Cypriot ingredients.”
However, one thing that remained constant is the social nature of the aspect of food. “We gather around the foukou to nibble,” she says, speaking of the tradition of barbequing and eating together with family and friends.
What has remained unchanged throughout history is not just the food itself, but what it represents. To some extent, traditional Cypriot cuisine is a record of the island’s past, preserved in rituals and traditions.
“Cypriot food represents hospitality and community,” says Matys. “A meal is never rushed, and no one leaves the table hungry. It’s about welcoming people into your home and sharing what you have.”
For families in the diaspora, the value becomes even more meaningful as familiar traditions are recreated at the table in their new homeland. “Food carries history in a very tangible way.” Matys says, “When we cook traditional Cypriot food were not only preserving recipes – we are preserving stories about how people lived, adapted and celebrated life on the island”.
For recipes and more info : Irene Matys – https://irenematys.com/, Nikoletta Nicolaou – https://nikolettaskitchen.com/, Paola Papacosta – https://www.instagram.com/cypriotandproud/
Cyprus is set to receive around €800 million for 2028-2034 to tackle immigration, Interior Minister Constantinos Ioannou said on Monday.
Earlier Deputy Minister for Immigration Nicholas Ioannides said Cyprus, as a frontline EU member state, must seek to increase funds to handle the situation, most of which should come from the EU.
Both Ioannou and Ioannides were speaking at the 4th meeting of the monitoring committee for the home affairs fund for 2021-2027, taking place in Nicosia, where they stressed the need for funding as a key instrument towards strengthening the asylum, reception, immigration and returns system.
In the current planning period, Cyprus has been approved for €480 million, of which €304 million has already been given.
This amount, Ioannou said, was 70 per cent higher than the previous planning period.
Added to national funds, Cyprus since 2021 has used €375m towards improving immigration infrastructure and procedures.
The interior minister said this money went towards a total of 95 projects.
Ioannides explained that EU funds converted money into interventions with a measurable result.
He referred to two such interventions in Cyprus, namely the Limnes reception and pre-departure centre, as well as the ugrading of the reception centre in Pournara.
The centre at Limnes, he said, was expected to be completed by September. It will have a capacity for 1,000 people and will relieve urban areas.
Upgrading Pournara, he added, would meet the new demands of reception centres under the new EU pact for migration and asylum.
Using EU funds, Cyprus has also upgraded the reception centre in Kofinou, Ioannides said.
Cyprus’ asylum system has also been strengthened with additional staff to better manage international protection applications, a move the deputy minister said was necessary due to the bulk of work to be processed.
Meanwhile, using EU funds, Cyprus recorded the highest ever number of returns of migrants to their countries over the past few years and is considered “a best practice example in this sector”, Ioannides said.
He explained that the EU funded all voluntary returns by 90 per cent of their cost and all mandatory ones by 75 per cent.
“Cyprus’ experience has shown that funding in the sector of returns has an immediate and measurable result,” he said.
The meeting’s agenda included supporting border management, visa control, the European Travel Information and Authorisation System (ETIAS), and planning for the new period 2028-2034.
Curium municipality and the city of Dazhou, China have signed a friendly cooperation agreement following a visit from Chinese officials to promote long-term relations between the two cities, including in the areas of tourism, culture and trade.
Attracting investment through international partnerships is a key strategy for Curium, its mayor Pantelils Georgiou said. He placed importance on outward-looking initiatives and expressed satisfaction with the visit.
Georgiou highlighted the cultural, archaeological, and environmental richness of Curium in addition to its four industrial zones.
The Chinese delegation included deputy secretary of Dazhou’s municipal party committee Wang Weijin, and commercial counsellor of the Chinese Embassy in Cyprus Liu Kai.
The delegation visited the Ayios Sila industrial zone, the Akrotiri Environmental Education Center, and the Curium Archaelogical Site – locations which showed the different aspects Georgiou described.
Local businesses and Chinese business representatives also discussed investment opportunities and cooperation at a meeting during the visit.
GitHub Enterprise Cloud with Enterprise Managed Users (EMUs) can now enforce GitHub’s native IP allow list configuration across user namespaces. This feature is now generally available.
EMUs allow the enterprise to own the user accounts within their enterprise. Often, enterprises want all repositories to adhere to their enterprise’s network access policies, including those owned by the user namespace associated to their EMUs. This feature ensures that EMU users can only access their account’s repositories from an allowed IP address.
Access through the web UI, Git protocol, and APIs is filtered by the IP allow list. All credentials, including personal access tokens, app tokens, and SSH keys, are covered by this policy.
To learn more, read about configuring IP allow lists on GitHub.
The post IP allow list coverage for EMU namespaces in general availability appeared first on The GitHub Blog.
I’m a member of a Roblox game that is in development, and I’m interested in making vehicles for the game. I can model things with Blender, but I’m curious if it’s a viable venture to try and create something like a usable AT-AT, AT-ST, or AT-TE. Such vehicles conceptually don’t sound difficult to create aside from animations for the legs. If you’re familiar with Roblox, Star Wars, and Lua then I’d love to hear from you.
Hello, my friends. I'm trying to watch a game demo in Counter-Strike from February 12th. Problem is that none of the versions available in the beta branch on Steam can run the thing. I tried assembling the version closest to that date by downloading depots on SteamDB. It worked yesterday, although kinda glitchy. Today I just couldn't find any success on that.
Anyone feels like helping?
I’ve finished my first week of developing my own game, been a gamer for decades but never looking into dev before, i’ve been using gadot.
I’ve found it a really addictive creative outlet, even though i’ve only been using real life textures (photos i’ve taken on my phone along with some manipulation in photoshop)
I tried to use blender to make some 3d assets but i found that’s where i got lost, so atleast for now i am using free assets that i’ve found online.
at this stage i have created the “player hub” area, the idea for my game is to be a semi-open world with the player hub being the save point and place where the player has the option to advance time (switch from morning, noon, sunset, night)
now that i feel as though I have almost completely finished and detailed this player hub space it’s time to make the rest of the open world, and it feels daunting.
my game is using ps1/ps2 style assets, very low poly/grainy so i’m not nervous about performance limitations but it’s almost like i just don’t know where to start, i’m assuming a giant flat box mesh however my game is set on the south coast of australia which is very rocky and hilly with beaches so i feel like a flat plane might make me feel a bit frustrated.
if anyone has any tips i’d love some feedback
Hey r/gamedev. First time posting here so apologies if this has been covered elsewhere.
I am a documentary filmmaker at a college film program. I have spent the last several months building a free browser-based card survival game called Making the Cut as a promotional tool for a documentary series I am releasing on YouTube called Freshman Up. The game simulates surviving the first year of film school and is based on real students and light film themed scenarios about student filmmaking.
The game is click-based, mobile first, built in plain HTML/JS/CSS, will host on Cloudflare Pages, no monetization, no ads, completely free to play. It has about 400 cards across six phases, a scoring system, seven collectible awards, and an optional email capture for people who want to save their progress locally so they can collect the awards, or be notified when the documentary drops. I hope to release the game in a few weeks and the first year of the doc series will come out a month or two after.
My target audience is film students, young filmmakers, and anyone who has survived or is curious about what creative school is actually like. I realized there are a lot of promotional videos about film school or single person takes on the experience, but little that tries to capture the experience in a fuller and more complete way.
My question is simple. I have zero marketing budget (can spend a little personal money if need be) and no game industry connections. Once this is live, how do you actually find players for a free browser game tied to a non-commercial project like this? What worked for you? What did not? Which platforms or communities gave you the most genuine traction?
Any advice appreciated. Happy to answer questions about the game or the doc. Thanks for reading this!
I want to better my knowledge about creating prototypes and I want to get a better understanding of how other people do it so if you have some time please review and critique my current prototype workflow, thanks
Some key details:
solo developer using unity and this is the first project where I am applying a more serious workflow. My game (after prototype) will be a short horror story game with a big focus on mechanics and the story will mostly be visual and some reading, almost no cutscenes or voice lines.
I have read about prototypes like subnautica, overwatch and some smaller indie games and used some of that knowledge to get a better understanding.
my current prototype:
I mainly focused on two aspects:
The mechanics and the atmosphere of the game.
for some of the mechanics I created more complex models and added proper sound effects like for the gravity gun, others tools and mechanics are more simplified.
for the atmosphere of the game, I have created some rooms with more details and added some environmental audio so you can get a feel how the game will look/sound like
The prototype features rooms, hallways, a gravity gun, computers with its own navigation ui, ventilation you can crawl through, a simple enemy that interact with objects and follows a patrol path, physic based doors which the gravity gun can interact with, hand held radar to spot enemies around you, flash light, cameras you can access with the computers, simple version of player inventory, some sound effects, player-enemy interactions and some simple post processing effects.
used trello.com to keep track of tasks for my prototype.
on most objects I used simple textures or no textures, objects was created with simple 3D objects like cubes or something i created under 1 hour in blender.
I used some free assets to save time but only if the assets fit the visual theme.
I then created a level which takes 5-10 minutes to navigate through.
I ended up redesigning the enemy once, the map layout once.
I have spent a month on this now with some regreets as I have cut 1/4 of the prototype out.
i am plan on uploading it to itch io and get feedback from friends, families etc. before moving on.
If you need more info then please ask and I
will provide.
Any advice/feedback/ideas is more than welcome!
I'm a 2D game artist (character sprites, CGs, cover art). I'm not rlly a beginner,I have four released games and a few more in progress. I recently finished my first paid VN project and I'm pretty confident I underpriced myself, especially on the CGs and cover.Honestly, I undercharged because I was scared no one would hire me at all. But after seeing how many hours I actually put in, I've realized underpricing just isn't sustainable.
Here's what I charged and how long each took:
-Character sprites (with multiple expressions each):
4 characters total, ranging from 5h45m to 10h15m per character
Average 7h per sprite (bc of multiple revisions..)
Charged $18 per pose + $4 per expression, total was 174$ for about 37 hours
+CG illustrations:
1 completed, took 4 hours
Charged $22
+Cover art (2 characters + background):
Took ~10 hours (client had significant revision requests)
Charged $35
I also didn't charge a commercial license fee, which I know now I should have. The game is intended to be sold.
I'd love to know: given these hours and the type of workwhat would you consider fair pricing (as someone who takes upfront payment)? I'm also wondering how others handle commercial licensing in contracts.
Here’s some examples of my sprite art , and cg from a hobby game ..
So, many playtesters have described my game's strongest element as the boss battles and the strategy required to overcome them. The enemy design and music have also been highlighted as strengths of the game.
But it's a turn based RPG with a limited budget, so I'm inclined to think that actual players discussing their thought process as they're strategizing what they're going to do for the next turn while a good-looking boss with a banger soundtrack is playing might be my game's best way of emphasizing its' strong point is my best trailer.
I'm somewhat worried that a lot of people will just scroll past, though. There's, as we all know, a lot of garbage mobile games who use a similar strategy to this.: so I'm conflicted.
Is this a viable format for the trailer of an actual game or am I cooked because I would be borrowing a trailer format that many gamers have become accustomed to disregarding off the bat?
| Two weeks ago we were part of the Indie Games Area at the LevelUp in Salzburg, Austria. This was the first time I was able to show the game to complete strangers, and I learned quite a lot from that process. In the video I go into some detail on the different topics, but here's the summary of it:
[link] [comments] |
Hi, a month ago I added my game to Steam, and I registered for the Bullet Fest (by appeal, because I chose the wrong tag at first...). Well, I got accepted, and one week ago I put a demo online. I chose to use a separate demo page to get Steam reviews on the demo.
Today, at the launch of the fest, I searched for my game in the demo list but couldn't find it. I searched for the game page (not the demo), and I can find it. The problem is that, in the fest, the capsule doesn't have the green demo logo, and the link goes to the main page instead of the demo page.
I can't appeal to Steam again (and the time it would take would be too long anyway), but does anyone know if there is a solution? For example, if I put the demo on the main page (instead of using a separate demo page), would I lose the reviews? Would Steam need to verify it again? Is it a bad idea?
I'm lost, it's the first time I've put a game on Steam 😰
The game is ArcaneBound for the people who are curious.
Here are some of the most useful sites and resources that mostly every game developer should know:
Credits to site owners
If I find more sites I will include them here! but now this is the list, let me know what you think, and happy game development!
One of the biggest challenges I keep running into, both personally and from talking to other indie devs, is knowing when to stop iterating on the core gameplay loop and actually start expanding the game around it.
There's a temptation to keep polishing the core mechanic indefinitely because it feels safer than committing to a full scope. But at some point you have to move forward, otherwise you end up with a perfectly tuned prototype that never becomes a real game.
I've seen advice ranging from "if it's not fun in 30 seconds it never will be" to "some games only click once all the systems interact together." Both feel true depending on the project.
So I'm curious how experienced developers here actually make that call. Do you set a hard deadline for core loop validation? Do you rely on playtester feedback hitting some threshold? Is it more of a gut feeling after enough iterations?
Does genre change your approach significantly? A puzzle game probably has a very different bar than an open world RPG or a roguelite.
Would love to hear how others have handled this, especially if you've shipped something and can look back on whether you made the right call at the time.
Hello,
Tomorrow will mark two weeks since my first Steam game (Peek) has been released and it's been a fun learning experience. I just wanted to share this little anecdote, because my game's destiny has been inadvertently tied to the popular co-op game Peak, whether I like it or not!
The good news: I was able to gain just over 2,000 total wishlists since my Steam page went live last March. These are rookie numbers for sure, but I'm pretty stoked about it for my first time through. That is...I'd be even more proud if I'd actually earned ALL of them on my own, though!
The bad news: Nearly two weeks since release, my game has sold 92 copies. Again, rookie numbers, but I'm proud. However, I currently have a 60% (!!) refund rate.
I opened my steam page in March 2025 for my audio horror puzzle game "Peek" and pitter-pattered along with tiny wishlist numbers for a couple of months. Suddenly, in mid June 2025, I received a giant spike of wishlists almost literally overnight. At that time, I was dipping my toes into outreach for the first time and had been emailing some mid-sized creators, so I thought that I'd hit the jackpot and someone with some sort of influence had covered my game. I looked on Google, on YouTube, anywhere I could think to, but nothing about my game in particular. At that time, I didn't really know what I was doing (so, slightly less than I know now), so I just shrugged and moved on.
Over the next couple of weeks, the game Peak started entering everyday conversation on the popular games discussions across the web. It took me admittedly longer than I'm proud to admit to put 2 and 2 together, but when the lightbulb finally went off, I checked the release date of Peak and, sure enough, June 16th 2025. Exactly when my spike happened.
I have to say that there are absolutely zero similarities between our two games. Description, screenshots, vibe, genre...there are nothing that these two games share in common except that they're homonyms, so I'm honestly not really sure how so many users wishlisted mine thinking it was the other game. Regardless, though I felt kind of guilty, sometimes you just have to be lucky in this game and so "I'll take 'em, I guess". If not for anything just to maybe get a little boost in the algo when I finally released the game.
Well, this has come back to bite me. My game hasn't been the massive hit of my dreams, but even the meager amount of people who bought it are refunding it with the reason "Purchased by Accident". Here are 5 of the translated reasons for those that left detailed reasons:
-"I bought it by mistake."
-"I was going to buy the different game with the same name."
-"I accidentally purchased it, confusing it with another game."
-"I made a typo when searching for the game."
-"I did not want to buy this game, and I thought it was another game named Peak."
Ouch! But kind of funny.
Now, there are some other reasons on there, but "Purchased by Accident" are the majority of them. This isn't trying to be a "why won't anyone buy my game" type of post, as the game surely isn't for everyone (I had to ditch the "audio horror game" angle and sell the game for what it truly was, a 'PUZZLE game in a horror skin", to manage correct expectations).
So, kinda sucks for the ol' ego, but it is what it is. I still can't decide if the similar naming coincidence is/was a blessing or a curse, but this is just my hobby regardless so my kids will eat just fine tonight! I guess, just be aware of what you name your game and the baggage might come with it!
Thanks for reading,
Andy
Well, a friend and I are brainstorming and developing an idea for a video game based on a comic I'll be creating in the future (for which I already have the plot planned). In the comic, the protagonist has a fairly defined personality, but we were thinking of making the game version the typical silent protagonist. So, imagine you're a fan of my comic (I know it sounds a bit self-centered), the game comes out, and the protagonist loses his personality, but there are several dialogue options that let you give him a personality yourself, the usual rpg stuff. Or, conversely, imagine you're a fan of the game, you like the protagonist's subdued personality, you go and read the comic, and you find him with a much more pronounced attitude. Would this bother you? What would you think?
Also, sorry if I don't express myself well, I had to use Google translator cause I don't know english (something I know I'll have to fix to do this game)
I showcase a lot of games for indie developers and I've noticed more and more developers use AI to write their game descriptions or summaries. Especially on Keymailer. From an outside perspective if I see a developer has used AI to write their description or summary I pass on the game entirely and that's coming from someone who doesn't really care all that much about moderated AI use in development tools.
To me it says you can't be bothered to even explain your own game which gives the impression you just don't care enough about your project to even be bothered to describe it. Please give your project and your effort the respect it deserves and explain your game in your own words. I have no issues with people using AI to translate their descriptions if English isn't their primary language but just leaving it up to an AI to explain your game is a major turn-off.
I was recently discussing this with others who showcase games and found this was a shared feeling among a lot of them. You've already put in the effort to make a game. The least you could do is be able to explain or describe it properly. Sorry if this post breaks any rules. I just want everyone's work to get the recognition it deserves.
I'm not posting this to debate the use of AI or cause arguments. Just treat it as a public service announcement and the thoughts of someone who has showcased countless indie games to try and get them the attention they deserve.
Art can be in spiced by anything that what makes it beautiful so I'll like to hear some experiences about that
I have a hard time showing my games to people. Even my friends that are gamers. I got a twitch streamer to play my game but I couldn't watch them play it and I basically went dark.
I need feedback, but I have levels of trust.
I post or show the game and get feedback like, It doesn't have this, it doesn't do that. Then they start adding stuff to the scope of the game. If you added this and maybe if it did that. Which wasn't part of the scope of the game.
If I show it to my friends, I write down all the notes they give me.
I rarely show it to my family members. I have shown a few games but all they see is the unfinished parts and say the game is stupid.
I want the feedback but I have a confidence problem showing it to people I don't know especially on social media, where it's the wild west.
Should I wait until I have something more polished to show people? Should I try to make my game more clear on what it does and doesn't do?
I want to show my journey making the game and I want valuable feedback but for some reason I just play my games myself and never show it to anyone anymore.
Hey everyone! As many before me, I thought of giving it a shot at solo game dev. It was a dream of mine for more years than I can remember, but life is unpredictable. One day I woke up and thought "what am I doing with my life?", so I quit my job and started looking for languages, engines, tutorials and all that jazz. I made a learning plan by picking lectures from cs50p (for basic python), godot lessons from gamedev.tv (there was a bundle in Humble) and downloaded VScode, Git, PureRef and Obsidian. The first days are exciting, having completed the first weeks of cs50p and getting used to git and godot engine. Pushing my understanding of coding and experimenting, writing down game ideas, making a list of games from other devs to study mechanics/feel etc by playing. I don't have a coding background, working for many years at a 9-5 consultancy office job that plummeted my mental health, I now feel alive like I turned back time 20 years.
This is a brave new world with so much to learn, but it already feels so rewarding! The challenge of problem solving with programming, the creative part of making something move on screen, making art for the game, designing the core loop, mechanics, giving life to something from scratch. Any people in here that started later in life? Any kind of help, tips, suggestions etc are welcome.
A is a potential design B is our current I was thinking of reducing the pink elements on B and zooming it in some? What do you think?
TL;DR:
My first idle game unexpectedly found an audience. After releasing a more ambitious roguelite that underperformed, I announced a new idle game that builds directly on what those players already liked. Because of that existing audience, the new Steam page got over 400 wishlists in one day without even having a trailer yet.
A little backstory:
Last September, I released a small 2D idle game called Idle Pixel Fantasy. For reasons I still do not fully understand, it became quite successful for me and is still bringing in money around 8 months later.
Last Monday, I released my 3D snake x roguelite game HeroTail: Survivors with around 2,000 wishlists. So far, the sales have been very underwhelming. One thing I realized is that the audience from Idle Pixel Fantasy is very different. Many of them seem to prefer simpler idle games and were not really looking for a roguelite.
After the success of Idle Pixel Fantasy, I already wanted to work on a bigger and better idle game "Idle Pixel Battle", but I had received funding for the roguelite, so I had to commit to finishing and releasing that project.
For a while, I worked on both projects in parallel. Now that HeroTail: Survivors is released, I can fully focus on my next idle game, Idle Pixel Battle. I published the Steam page and made an announcement on the Steam page of Idle Pixel Fantasy. After just one day, the new game got 415 wishlists.
My current business plan is to release 2–3 smaller games per year instead of spending 2+ years on one big game. That way, even if one game underperforms, the next one might compensate for it.
This experience also showed me how important it can be to have one game succeed. Once you have an existing audience, your next games can have a much easier time getting initial visibility.
Oh, and the most important thing I want to say:
Don’t give up, and don’t expect your first games to be successful.
Before Idle Pixel Fantasy, I had already released 6 games on Steam. My first release was back in 2018. None of them came close to this result, but each one taught me something and helped me get to the point where I am now.
If you read all of this: thanks for your time!
- Max
Hi! I am a software engineer by trade but I always liked game dev. I started tens if not hundreds of projects and never finished any of them.
I always thought the hardest part was making the game actually playable and publishing it. then the money will start rolling in 😬😬
But now that I finally finished one and published it to Google Play, I feel like the dev part was actually the easy part because I have absolutely no idea how to market it.
I thought about posting on Reddit but I don't want to be that guy who just spam drops their link everywhere. I also have a small YouTube channel, posted on LinkedIn, have a little budget for paid ads but not sure it's worth spending before getting any organic traction.
The game is called SplitLine if anyone wants to see what I'm working with.
For people who have been through this, what actually helped you in your first few weeks after launch?
Our new game got a huge wishlist spike yesterday and I started searching for the creator coverage that led to that spike but didn't find any. When checking the marketing stats on Steam I was blown away by the numbers, the traffic came from Steam's new Personal Calendar!
Just yesterday we had 6k impressions, 1.8k visits and 340 wishlists from the Personal Calendar. The fact that the game is releasing in three weeks might be a factor, but I'm very interested in how it's going for you, let's share some numbers, people!
| We kinda know the top games get the most sales, here's another chart to prove it. [link] [comments] |
I experiment with Rust UEFI applications - build an EFI image and run it in within QEMU. So far, I was unable to configure RustRover to do any special things like unpause QEMU, execute script on breakpoint, etc. I am able to do all the special steps in VS Code, but its Rust support is probably not best. RustRover should be best at Rust support, it's a shame if its debugger cannot support TCP connection to QEMU. Can anyone experienced with RustRover say whether it is suitable for UEFI development or I should try CLion or resort to VS Code?
Using winit and its default android-activity for values, but neither of those have what gamepad axis values mean what, that is in the ndk crate, is it okay to just copy over the values so that I do not need to import all the ndk thing or do I need to import ndk? The ndk split up crates are mostly deprecated and the one that is not deprecated does not contain these, is it even safe to get stuff from ndk or should I use the official Android API documents? Has Android changed these things ever and how far back do gamepad codes for now go? Generally, any advice for using Android gamepad stuff? Are all the gamepad inputs safe and differentiable from all other inputs even on smart TV Android? What about ChromeOS?
https://lib.rs/crates/feluments
Hello! I recently had a use-case for optional arguments for structs in Rust. This is often solved using builders, but I wanted something that looks more like conventional Rust syntax. So I learned some derive macros and came up with my own solution.
Feluments has the Builder derive macro that many other libraries support. But it also has a build! macro, which uses the conventional Rust syntax.
build!(Foo { x: 32, y: "bar" }) == Foo::builder().x(32).y("bar") The build! macro is also compatible with other builder crates, such as bon. But the Builder derive macro implemented in feluments is designed with the build! macro in mind.
I’m new to rust and trying to debug some code and learn at the same time. When I use println!(“result of arp -a” {:?}, ARPresult);
I get no error messages and no print outputs. I then searched and found someone mentioned debug! Macro and that doesn’t exist. Could someone point me in the right direction please?
It is something to do with unit tests capturing the output and I’m not sure what that means especially because I’m writing a tauri app.
This is on Linux/Lubuntu.
Who Runs Your Rust Future? Hands-On Intro to Async Rust
I wrote a hands-on intro to async Rust where you build a future and the runner that drives it. It assumes you've written async/await in JS and know Rust basics (structs, enums, closures). No prior async Rust needed.
What the first chapter covers:
block_on, a runner that drives a future to completionEverything is built from std only, no dependencies. Also, this chapter is a part of a bigger series that goes deep into async Rust.
Hi! I am excited to share with you my project as someone relatively new to Rust - Net-Sentry.
It's a CLI which lets you watch devices connected to your local network (maybe you can detect if someone is connected to your wifi 😉).
Currently it only works by sending ARP probe packets to all IPs you tell it to, but I will implement more methods in the future!
This was really fun to make, especially since this is my first project using async rust so I had to learn a lot. I also like OS internals and combining them with Rust was actually pretty fun too.
Anyway I hope you'll like this, I am always open to ideas and criticism if you have them! Feel free to tell me if my code could be better since I am far from expert and would love your corrections.
Here's the repo if you want to give it a look, have a great day!
https://gitlab.com/yairziv5675/net-sentry/-/tree/0bf9ce801fee3034955cd4d561d45bbebf9e3914/
Hello!
Today I had a though while deepening my understanding in rust, that maybe it could work if we had from cats typeclasses in rust. Came up with a couple of ideas for basic typecalsses like Semigroup, Functor, Monad.
Previously found that someone had done a macro which mimics the haskell's do notation, and was thinking maybe it's possible to do that with my now typeclasses to write for comprehension from scala, and it was pretty similar, which I was surprised.
Afterwards I chatted with claude about possibilities, would that work, and he came up with an interesting anwers that it might. And started evaluating how long would it take me to be able to make a librario which can run similarly to CE IOApp, and yeah, it's way too long, I have ctwo little children a job and other game dev project which I want to do.
So based on that I decided to embrace the claude and see what it can do, mostly it did pretty fine, had to do some fine tunning and direction and guided it via implementation of what to do. Which took about 4-5 hours to complete fully.
So now I am able to write an IOApp in rust with for comprehension!
I was thinking so what about the preformances, so I came up with a single benchmark to test against rust most popular async library 'tokio'. So I did a prime number calculation.
Surprisingly results were the same 8ms vs 8ms and after increasing the count of primes to calculate by 10 times, I got my cats implementation on average ran 210ms and tokio 221ms, which is a small gain, but still got surprised there as well!
I got everything in this repo https://github.com/optical002/rust-cats
But though I don't know how I feel about it's syntax, in here you can check how benchmark was implemented to see the rust CE syntax https://github.com/optical002/rust-cats/blob/main/benchmark/src/bin/prime_sieve_cats.rs and the 'count_primes_in_range' fn has similar thing to tagless final from scala.
What do you guys think about this, does this look promising and is worth investing time, or it looks too verbose for rust and not worth continuing?
I prefer the scala syntax TBH now that I'm looking at it, but this does not have a GC and no JVM cold start...
It seems no one has done shadcn for Ratatui yet? An opinionated library of good looking components with theming support etc.
Maybe it is time? I am trying out some ideas. Thanks to the magic of Ratzilla, you can see live previews of your wasm compiled components directly in the docs website.
lunar-bundler is a lua bundler that supports upto Lua 5.5. it walks require() calls recursively in the entry point, resolves them via configurable search paths or LuaRocks (the lua package manager), and emits a single .lua file with a small runtime shim.
Configurable via JSONC and TOML. It's still pre1.0 however so I'm looking to add in a custom plugin API to support dialects like Teal for typed Lua
It uses the `full-moon` package to walk through the AST for require() calls for fast and easy parsing. It's not published on crates.io just yet because of Lua 5.5 support requiring a PR request that might or might not be merged.
check it out at https://github.com/colourlabs/lunar-bundler/
https://i.redd.it/l5vkto42846h1.gif
OpenCat didn’t set out to be anything ambitious. I just wanted to rebuild a generative UI renderer in Rust — take a declarative UI description and paint it straight to pixels. That was it. But I hit a wall almost immediately: if you want an LLM to generate a UI, handing it some custom JSON schema is a losing game. These models speak HTML and CSS natively — that’s their mother tongue. So why would I force a foreign format onto them? I threw together a prototype that parsed HTML-like XML with Tailwind classes and rendered everything with Rust + skia-safe.
And then it clicked. A UI declaration is just a single frame. Add a timeline, and it becomes a video. I shoved a `<script>` tag into the XML, powered it with a QuickJS animation runtime, and suddenly that XML wasn’t just markup — it was a composition language.
Remotion and HyperFrames have taken the “video-as-code” idea way further than I have; they fully embraced the web stack. But I’ve never liked the browser-snapshot model. Spin up a Chromium, render the DOM, take a screenshot. It works, sure, but it always felt wasteful and brittle to me. So I went the opposite way: Rust + Skia on the GPU, no browser anywhere in sight.
What it can do right now:
- Declarative video format in XML, layouts via Tailwind, and JS animations that feel as natural as GSAP.
- Native Skia GPU rendering piped straight into FFmpeg to output MP4.
- A WASM target for in-browser rendering with CanvasKit.
Tech stack: skia-safe, QuickJS, Taffy + cosmic-text, and QuicksJS
Why this matters for AI video: LLMs already write clean, well-structured HTML/Tailwind. That exact skill transfers directly to composing video scenes — no need to learn some custom JSON schema nobody knows.
The thing is, it’s still early. The gap isn’t really in what the engine can do — it’s in how it *feels* to use. On paper, it covers maybe 85% of what HyperFrames and Remotion pull off: GPU rendering, declarative layout, animation scripting, audio mixing, transitions, font handling. The raw materials are all there. But turning those materials into a creative workflow that doesn’t make you want to pull your hair out — that’s an entirely different challenge. The ingredients are on the table; the cook’s intuition is what’s missing. That’s the part I’m obsessing over right now.
https://github.com/ZhouXiaolin/opencat
Stars, issues, pull requests — all of it is welcome.
I'm struggling to figure stuff out when it comes to macros since they are often rich in features but LSPs don't / can't really suggest the inputs that can be provided into the macros?
For example: `utoipa` crate, which is used for OpenAPI generation.
While they're lovely and make sense when reading, writing them out is a pain in the ass without knowing exactly their structure / options.
```rust
post, path = "/authorize", summary = "Authorize user", description = "Accepts credentials and returns a signed JWT token", request_body = OtpPayload, responses( (status = 200, description = "Successfully authorized", body = AuthBody), (status = 401, description = "Wrong credentials"), ) )] ```
Or `axum` which is used to register server handlers.
Am i missing something or is this just a part of macro-pain
Hey r/rust 👋
I'm the author of jscpd — a copy/paste detection CLI tool for source code, supporting 223 languages/formats. It's been around for years as a TypeScript/Node.js tool. Starting with v5, I rewrote the core engine in Rust.
Here are the actual benchmark numbers (10 runs, Apple Silicon, v4.2.5 Node.js vs v5.0.4 native binary):
Target v4 (Node.js) v5 (Rust) Speedup ─────────────────────────────────────────────────────────────────── fixtures (548 files, 1.5 MB) 1.030s 0.030s 34.3x svelte (9K files, 164 MB) 15.803s 0.428s 36.9x CopilotKit (17K files, 902 MB) 82.890s 3.440s 24.1x A few things that stand out from the data:
Startup overhead is gone. On the tiny fixtures run, v4 takes 1.03s — that's almost entirely Node.js startup. v5 is 0.03s, consistent to the millisecond across all 10 runs (std dev: 0.000s).
Multi-threading shows up clearly. On CopilotKit, v5 reports 7.3s user time vs 3.4s real time — it's genuinely using multiple cores. v4 is strictly single-threaded (user ≈ real throughout).
Blame mode is a special story. v4 shells out to git blame per file, which tanks its --blame performance badly (3.57s vs 1.03s baseline — a 3.5x regression from its own non-blame mode). v5 uses gitoxide for in-process blame, so --blame adds only ~0.10s. Same feature, night and day.
Detection improved too. v5 finds more clones on large codebases — on CopilotKit, 22,487 vs 12,272 clones — likely due to better token counting and different maxSize defaults.
The CLI is still installable via npm (npm i -g jscpd) since most users are in the JS ecosystem, but under the hood it's a native binary now. Pre-built binaries for Linux/macOS/Windows ship with each release.
The 223-language support survived the rewrite intact — everything from TypeScript and Rust to COBOL, Terraform, and Solidity.
Would love any feedback from the Rust community on the implementation — especially around the tokenizer architecture and language registry design. Code at github.com/kucherenko/jscpd, site at jscpd.dev.
Happy to answer questions about the rewrite process or the profiling methodology.
EEVDF scheduler, page flipping and plane support on Intel graphics driver, COSMIC Monitor, XFCE port, massive performance improvement on I/O event wait and RedoxFS inode, Rust toolchain update, RSoC 2026, and many more.
Hiya, I wanted to share nucleus a custom built actor framework library I wrote for a chat app I am working on. It does things what you would expect from an actor framework like node discovery, remote node heartbeats, distributed pubsub, backpressure, moving actors across nodes etc. Cross-node compatibility is optional and enforced at type level by a : Serializable bound, meaning that you can for example send callbacks through known local actor references. For mpsc channels it uses kanal as it performed best under benchmarks, but the implementation is quite easily swappable so it can be easily replaced.
I did consider using an existing rust actor framework but the existing ones made some design decisions that did not fit what I needed. Nucleus is also not on crates io because of a name clash + I didn't write proper docs for it, but I want to publish it there at some point in the future.
I also included benchmarks compared to elixir, full description can be found in the blog. The benchmarks include an experimental allocator, which is a custom allocator optimized for in-order allocs/deallocs (which is what happens when you have an actor mailbox/queue). Currently the performance is considerably faster for low contention usage but is not the best under very heavy multithreaded contention so I dont consider it production-ready yet.
Let me know what you think/I am happy to nerd out if you have any questions :)
We built Scotty at our agency to solve a narrow problem: getting a work-in-progress app in front of a client, a PM, or QA without walking them through a localhost setup, and without standing up Kubernetes for something that lives for two days. It's in daily use now — devs self-service their own preview apps, and so do the PMs, who deploy, restart, check status, and tail logs from a SvelteKit web UI without ever touching the CLI.
You point it at a project folder with an existing docker-compose.yml inside it — no edits to the compose file — and it uploads the folder, deploys to a single server, and hands back a real URL like nginx.my-blog.apps.yourdomain.com via wildcard DNS. Apps expire after a configurable TTL, so you don't accumulate a graveyard of forgotten demos. Scotty just beams a working app from your laptop to a server; the name promises nothing it doesn't deliver.
It is deliberately not production hosting. No HA, no multi-node, single point of failure by design. It's the tool you reach for before you need Kubernetes, not instead of it.
The Rust side, since that's why you're here:
scottyctl CLI; casbin for multitenant RBAC.MIT, currently v0.3.0: https://github.com/factorial-io/scotty
Full disclosure: it's early-stage and rough around the edges in places. LLMs also helped me writing parts of the code — it isn't fully vibe-coded, I can defend every design decision in here, but I'd rather say so up front than have someone find the seams and assume I was hiding it.
Longer write-ups if you want the reasoning:
One thing I keep chewing on: with real multitenancy and OIDC groups in the mix, casbin pulls its weight — but mapping IdP group membership onto casbin roles means two sources of truth that can quietly drift. For those running casbin against an external IdP: how do you keep the policy layer and the directory in sync without it turning into a reconciliation job of its own?
We are doing a talk in Ghent, Belgium about CompIO, another approach to asynchronous IO in Rust. Alice Ryhl gave a talk about this topic on RustWeek in Utrecht. Maybe this is interesting for those who could not attend that one?
Speaker is Koen from DoubleVerify and the talk will be at his office.
It is on this wednesday. You can sign up here https://www.meetup.com/sysghent/events/314663319/, apologies for the late notice!
The office is a bit hard to reach from the street, but you can follow instructions on the MeetUp page.
New week, new Rust! What are you folks up to? Answer here or over at rust-users!
Mystified about strings? Borrow checker has you in a headlock? Seek help here! There are no stupid questions, only docs that haven't been written yet. Please note that if you include code examples to e.g. show a compiler error or surprising result, linking a playground with the code will improve your chances of getting help quickly.
If you have a StackOverflow account, consider asking it there instead! StackOverflow shows up much higher in search results, so ahaving your question there also helps future Rust users (be sure to give it the "Rust" tag for maximum visibility). Note that this site is very interested in question quality. I've been asked to read a RFC I authored once. If you want your code reviewed or review other's code, there's a codereview stackexchange, too. If you need to test your code, maybe the Rust playground is for you.
Here are some other venues where help may be found:
/r/learnrust is a subreddit to share your questions and epiphanies learning Rust programming.
The official Rust user forums: https://users.rust-lang.org/.
The unofficial Rust community Discord: https://bit.ly/rust-community
Also check out last week's thread with many good questions and answers. And if you believe your question to be either very complex or worthy of larger dissemination, feel free to create a text post.
Also if you want to be mentored by experienced Rustaceans, tell us the area of expertise that you seek. Finally, if you are looking for Rust jobs, the most recent thread is here.
I am no language design expert, but can we have something that has all the goodness of Go, except GC, with the memory safety of Rust?
Is it technically possible?
| submitted by /u/pstuart [link] [comments] |
| submitted by /u/RezaSi_ [link] [comments] |
This is the weekly thread for Small Projects.
The point of this thread is to have looser posting standards than the main board. As such, projects are pretty much only removed from here by the mods for being completely unrelated to Go. However, Reddit often labels posts full of links as being spam, even when they are perfectly sensible things like links to projects, godocs, and an example. r/golang mods are not the ones removing things from this thread and we will allow them as we see the removals.
Please also avoid posts like "why", "we've got a dozen of those", "that looks like AI slop", etc. This the place to put any project people feel like sharing without worrying about those criteria.
I honestly think it's better than ever, I'm loving every last second of it.
Just watched latest video https://www.youtube.com/watch?v=WqSWZuGS9pc by Prime and he disagrees, his take is that the lang is loosing it's way by increasing complexity too much.
I did enjoy Go due to it's simplicity but I also don't think that these 2-3 features are making it "complex". like generators are totally fine, it's not the end of the world if the language takes 5h to learn instead of 4...
I always think my opinions are average but they always cause a ruckus, so I figured I'd post here and see what are the community thinks in general.
Are y'all happy with the direction Go is taking? Is it moving too fast or not fast enough?
Edit: losing*
Edit2: I don’t care for downvotes, bring them on. It’s an interesting topic that is language related and I enjoyed hearing reasons from people that are on all 3 sides pushing for faster, same and slower rate of changes.
Hey r/golang,
About 2 months ago, I started building a project that lets me navigate code across multiple repositories in a cost-effective (token-wise) and accurate way for debugging difficult cases. Back then, there weren't many options (namely, GitNexus, code-review-graph, codebase-memory-mcp, and a few others; some were genuinely close, and I give credit to them for pointing the direction), but they didn't work for me. Specifically, I've needed to work with 150+ repositories with codebases in different languages (primarily Golang, TypeScript, Elixir, Python, and SQL). Through the pain of working with a per-repo setup and ad hoc scripts, I ended up building Gortex, a code graph and intelligence engine written in Go. Since a big portion of our codebase is written in Golang (and, of course, Gortex was used for building Gortex; otherwise, why?), I wanted to share it with the Golang community.
So, Gortex - what is it? A single Go binary that indexes your repositories into an in-memory graph (symbols, references, call chains, tests, API contracts) and exposes it three ways: CLI, MCP server, and an HTTP API. A long-living daemon serves every Agent/IDE window from one shared graph with live fsnotify reindexing. Written in Go 1.26; Battle-tested on Golang projects (actually, Golang received a bit more love, with precise attention to differentiating between user code, test code, and external vs. built-in code). Local-first, verifiably. No network calls (unless you'd like to work with Gortex federative mode, when you'd be able to connect with other Gortex servers); releases are cosign-signed, SLSA Level 3, with an OpenSSF Scorecard on the repo. No hidden dependency chain; I treat security seriously. Audit it before you trust it.
A few times across various subreddits, there were threads about the problem of AI agents navigating codebases with grep/find/cat, burning thousands of context tokens on noise, and then hallucinating. The top question in that thread was "Do you have any data on token reduction?" — and there wasn't any. Of course, after 2 months of work on the project, failures and expenses, I learned how to keep it under control, and I measured it. The numbers (all reproducible, methodology in BENCHMARK.md). Honest limitations: The token-efficiency ground truth is currently curated against a few repositories, and it can be improved; the harness accepts your own corpus + ground truth, and I'd love external runs and looking forward to independent benchmarks. As well, I'm looking forward to hearing feedback on what is important for you to be measured to make it more community-oriented. SWE-bench results aren't published yet — the harness ships in the repo, but a full run is multi-day compute. The results file is an open template; if you run it, PR your numbers.
Token efficiency vs ripgrep pipelines: 3–50× fewer tokens per response on identifier queries. One honest caveat:
MCP tool latency through the production dispatch path: most tools sub-ms to single-digit ms p95, but... I found it doesn't really matter and doesn't impact much (unless you cross the threshold when the model starts penalising slow MCPs), and I turned to quality over speed in some aspects.
How does it compare to most typical mentioned examples?
Setup is one command per machine: gortex install detects and configures every coding agent on your machine (Claude Code, Cursor, Codex CLI, Zed, Hermes Agent, Aider — 16 supported), then gortex track <repo> per repository.
Repo: https://github.com/zzet/gortex
Benchmarks: https://github.com/zzet/gortex/blob/main/BENCHMARK.md
p.s. To remove such an annoying case, like 'read file before edit' - gortex has its own tools to edit files (single or batch edits), which turns your model mostly to thinking rather than playing ping pong with wasted context.
p.p.s. I started from being agent-only focused, but ended up with an extension for VS Code ( https://marketplace.visualstudio.com/items?itemName=Gortex.gortex ). I can take a look at building an extension for other IDEs, but not sure if it fits and what people are using nowadays.
I'd love feedback on the approach — especially from anyone who can run gortex bench tokens-efficiency against a real production Go codebase and tell me where the numbers don't hold.
| submitted by /u/Mellowww [link] [comments] |
func main() { var counter int var mu sync.Mutex var wg sync.WaitGroup wg.Add(1) go func() { for i := 1; i <= 3000; i++ { mu.Lock() counter++ mu.Unlock() } defer wg.Done() }() wg.Add(1) go func() { for i := 1; i <= 3000; i++ { mu.Lock() counter++ mu.Unlock() } defer wg.Done() }() wg.Add(1) go func() { for i := 1; i <= 3000; i++ { mu.Lock() counter++ mu.Unlock() } defer wg.Done() }() wg.Wait() fmt.Println(counter) } Best practices, solutions, approaches are welcome
a friend invests in rental properties and he kept sending me lists of addresses asking me to look them up on zillow. like 15-20 addresses at a time, usually from a mailer list he gets from his county. i'd spend 20 minutes tabbing through zillow pages and texting him back which ones were worth looking at.
wrote a cli tool in go that takes a text file of addresses, looks them all up in parallel, scores each one, and spits out a sorted list. the whole thing is a single binary he runs on his laptop.
the property data comes from a rest api called zillapi. you give it an address, it returns zillow data as json. zestimate, asking price, rent estimate, tax records, price history. 300+ fields per property. i only use about 10 for the scoring but the full response is there if i need more later.
the interesting part is the concurrency. the api takes about 1-2 seconds per call. doing 20 addresses sequentially would take 30+ seconds. with goroutines and a semaphore it takes about 3 seconds total:
go
func scoreAll(addresses []string) []Result { sem := make(chan struct{}, 10) results := make(chan Result, len(addresses)) var wg sync.WaitGroup for _, addr := range addresses { wg.Add(1) go func(a string) { defer wg.Done() sem <- struct{}{} defer func() { <-sem }() data, err := lookupProperty(a) if err != nil { results <- Result{Address: a, Error: err} return } results <- Result{ Address: a, Zestimate: data.Zestimate, AskPrice: data.Price, RentEst: data.RentZestimate, Score: scoreDeal(data), } }(addr) } go func() { wg.Wait() close(results) }() var out []Result for r := range results { out = append(out, r) } sort.Slice(out, func(i, j int) bool { return out[i].Score > out[j].Score }) return out } semaphore of 10 so i'm not hammering the api with all 20 at once. the scoring is simple. rent-to-price ratio above 0.8% and asking price below zestimate is green. one condition met is yellow. neither is red. the output is sorted best to worst so the green deals are at the top.
the cli usage looks like:
$ propertyscore -file addresses.txt GREEN 1425 Oak St, Springfield ask: $285k zest: $312k rent: $2,100 GREEN 892 Maple Ave, Springfield ask: $195k zest: $218k rent: $1,650 YELLOW 3301 Pine Rd, Springfield ask: $340k zest: $335k rent: $2,800 RED 710 Elm Ct, Springfield ask: $420k zest: $389k rent: $2,200 my friend runs this every tuesday when his county mailer list comes in. takes 3 seconds for 20 addresses and he immediately knows which ones are worth driving by. before this he was spending an hour on zillow every tuesday morning.
for the ai side i also set up a skill so he can ask claude about properties:
npx clawhub@latest install zillow-full the binary is 8mb. no dependencies beyond the stdlib and the standard json/http packages. i compiled it for his windows laptop with GOOS=windows and just texted him the exe. no docker, no install process, no runtime. that's the part of go i appreciate most for tools like this.
| Hi everyone, I'm sharing a Golang package I recently forked from SSLMate/go-pkcs12. Since the SSLMate repository hasn't accepted community-requested extensions for years, I decided to create a fork that allows for greater freedom in handling pkcs12 (the SSLMate repository has many limitations). I've currently added a Builder that allows for the creation of pkcs12 packages that combine certificates + private keys and trust certificates, all accompanied by friendly names (aliases) (the SSLMate repository doesn't allow this). I also allow the password to be passed as a byte slice parameter, rather than a string, improving security. Check it out if you think it might be useful. [link] [comments] |
Previously, I really didn't understand anything about when to use concurrency, race conditions, mutexes, channels, ...
But after studying operating systems, I understand concepts like race conditions, how to resolve them, semaphores, mutexes, memory management, first fit, next fit, page table, ... , much more
In general, these concepts are quite similar to the confusing things we often see in Golang
So should we stop here, because it is enough or dive deeper?
| submitted by /u/elliotforbes [link] [comments] |
| submitted by /u/ptman [link] [comments] |
hey why we need to use req.body.close() when we make a request from go server??? i searched it online things i found were that it is recommended, it is in docs and it causes memory leak, but why that is my question??
like we are just requesting some data from another server right, then does not the connection closes after data is send???
After being frustrated with Xiaomi cloud subscriptions, vendor lock-in, and the weight of existing NVR solutions (ZoneMinder's LAMP stack, Shinobi's complexity, Frigate's Docker dependency), I built MiBeeNvr — a lightweight NVR that runs as a single Go binary.
What it does: - Accepts RTSP (H.264/H.265) and HTTP MJPEG streams - Segments recordings into MP4 files with configurable duration - Auto-cleans old recordings per retention policy - Built-in Web UI (Svelte 5, embedded in the binary — no separate frontend server) - WebDAV (read-write) and FTP for file access - MQTT-triggered recording for smart home integration - Prometheus metrics
The Xiaomi integration via go2rtc was the trickiest part — their proprietary "miss" protocol requires multi-layer decryption and P2P handshake. The article goes into details on that.
Why it might interest you: - Single binary, no Docker, no database setup (SQLite embedded, pure Go, no CGO) - Runs on low-end hardware — I have it on an ARM64 box with 512MB RAM - Per-camera retention policies, automatic disk space management - Cross-compiles to any platform Go supports
This is a project I actually run at home with 4 cameras (RPi CSI, ESP32-S3, 2x Xiaomi) and it's been stable for months. Configuration is YAML, everything is MIT licensed.
GitHub: https://github.com/Mi-Bee-Studio/MiBeeNvr
Blog post with full architecture details and deployment guide: https://blog.mickeyzzc.tech/en/posts/iot/mibee-nvr-introduction/
I'm happy to answer questions or discuss the technical decisions (why SQLite, how the recording pipeline works, Xiaomi protocol quirks, etc.).
| its a big ol mess but been coming together slowly I took out a lot of the 'stuff on lower scales' so I could seriously rework everything and have been going around and around experimenting and trying stuff, specifically at first just to get my framerate back It's pretty cool for what it is in this build, there's a lot more work to do [link] [comments] |