Saturday, May 2, 2026
f9d60bed-6b07-4e36-882f-eb979e78efce
| Summary | ⛅️ Light rain starting in the evening. |
|---|---|
| Temperature Range | 15°C to 21°C (59°F to 70°F) |
| Feels Like | Low: 56°F | High: 73°F |
| Humidity | 72% |
| Wind | 12 km/h (7 mph), Direction: 262° |
| Precipitation | Probability: 25%, Type: rain |
| Sunrise / Sunset | 🌅 05:57 AM / 🌇 07:33 PM |
| Moon Phase | Waning Gibbous (53%) |
| Cloud Cover | 70% |
| Pressure | 1011.55 hPa |
| Dew Point | 55.87°F |
| Visibility | 5.95 miles |
We will deprecate the following models across all GitHub Copilot experiences (including Copilot Chat, inline edits, ask and agent modes, and code completions), with the exception of GPT-5.2-Codex in Copilot Code Review, on June 1st, 2026:
| Model | Deprecation date | Suggested alternative |
|---|---|---|
| GPT-5.2 | 6-01-2026 | GPT-5.5 |
| GPT-5.2-Codex | 6-01-2026 | GPT-5.3-Codex |
Please update your workflows and integrations to use supported models before these dates. Copilot Enterprise administrators may need to enable access to alternative models through their model policies in Copilot settings. As an administrator, you can verify availability by checking your individual Copilot settings and confirming that the policy is enabled for the specific model. Once enabled, you’ll see the model in the Copilot Chat model selector in VS Code and on github.com. No action is required to remove the models once they have been deprecated.
GitHub Enterprise customers with questions or concerns are encouraged to reach out to their account manager for further assistance.
To learn more about the models available in Copilot, see our documentation on models and get started with Copilot today.
Join the GitHub Community to share your feedback.
The post Upcoming deprecation of GPT-5.2 and GPT-5.2-Codex appeared first on The GitHub Blog.
Workers and members of the trade union movement on Friday held their annual May Day march to the Ledra Palace hotel, in Nicosia’s buffer zone, with marches beginning from either side of Cyprus’ divided capital.
The day’s Greek Cypriot march began from Eleftheria Square, on the southern edge of Nicosia’s old town, while the Turkish Cypriot march began from the Kugulu Park, which is located in the moat of the old town’s walls, on its northern side.
At Eleftheria Square, trade union Peo leader Sotiroula Charalambous linked the day’s march to ongoing global events, saying that “this year’s May Day finds workers and peoples in a new wave of intensifying United States aggression and escalating militarisation”.
“The war against Iran is yet another episode in the blatant violation of the principles of international law by the US and its ally [Israeli Prime Minister Benjamin] Netanyahu. It follows the genocide against the Palestinian people, the kidnapping of the elected president of Venezuela, and the intensifying inhumane embargo against the people of Cuba,” she said.
Meanwhile, World federation of trade unions secretary-general Pambis Kyritsis also spoke at Eleftheria Square, and offered his support for “the workers of Cyprus in the militant struggles that we are witnessing in both communities”.
“On this great May Day, we join our voices with you to shout ‘no’ to imperialist wars and interventions, ‘no’ to the economy of war and destruction, ‘no’ to new attacks on social funds and funds for health, education, and social security, ‘no’ to the shrinkage of labour and social rights,” he said.
He added that his federation “remains a steadfast supporter of the Cypriot people’s fight for a solution and reunification of our divided homeland within the framework of a bizonal, bicommunal federation, with one sovereignty, one citizenship, and one international personality, and with political equality”.
Later, he said that “the weapon of the working class is solidarity and internationalism”.
Meanwhile, a number of Turkish Cypriot trade unions had also made statements to mark the day, with telecommunications workers’ trade union Tel-Sen leader Hakan Uredi saying that “we salute the sweat, organised strength, and solidarity of workers”.
He also praised his union’s own fight against a controversial deal which, if implemented, will see Turkish state-backed telecommunications company Turk Telekom given exclusive rights to home broadband internet in the north.
“Tel-Sen workers have once again shown that rights are protected through a fight, and that gains grow through solidarity. This resistance is the modern-day manifestation of the May Day spirit. We did not remain silent, we did not back down, we did not bow down,” he said.
The Cyprus Turkish journalists’ union also released a statement to mark the day, saying that “journalism and writing, which are at the forefront of intellectual labour, should also be among the highest values within the scope of May Day”.
“On this important day, we once again emphasise that journalists, just like other workers, should fully benefit from gains such as the eight-hour workday, overtime pay, and union rights,” the union said.
A day devoted to nature, appreciating the environment and engaging in creative expression is coming up this Sunday as another edition of the Akrotiri Spring Festival arrives. The Akrotiri Environmental Education Centre will welcome old and young very soon, hosting an array of activities, bird ringing and watching and crafty, hands-on workshops for all.
The festival is an initiative of the Curium municipality, Akrotiri Environmental Education Centre, BirdLife Cyprus, Terra Cypria – The Cyprus Conservation Foundation, as well as the environment department and the health services of the British Bases.
The day begins at 9am with a bird ringing activity. Then, at 9.30am, teens and adults can attend a guided birdwatching tour or a Cycling and BioBlitz ride discovering the Akrotiri Forest (suitable for those above 10). Both these activities require pre-registration via the online form available on the Facebook event (Akrotiri Spring Festival).
Two activities open to all will follow, the MedOnWheels event at 9.45am and a talk on Griffon Vultures at 10am, both of which will run until 1.30pm. An art workshop for children aged 8 to 12 will then take place, inspired by the migratory birds of the Akrotiri Peninsula.
Other activities include a QR code exploration game discovering the Centre, crafts welcoming all ages and levels and a session on uncovering the secrets of a dragonfly’s life cycle and its incredible transformation from the water to air.
A basket-weaving workshop, a seed ball workshop and a feathers activity on how they help birds soar through the sky, stay safe, and even talk to one another, will follow until the festival wraps up at 1.30pm.
Akrotiri Spring Festival
Environmental activities, nature-learning sessions, games and craft workshops for all ages. May 3. Akrotiri Environmental Education Centre. 9am-1.30pm. Free. Registrations needed. https://birdlifecyprus.org/event/akrotiri-spring-festival-2026/
Diko has “no red lines” regarding the question of with whom the party may collaborate to nominate a House president after this month’s parliamentary election, its leader Nicholas Papadopoulos said on Friday.
“No one can answer what will happen with the House president’s role, since we do not know which positions the parties will take in parliament,” he told the Cyprus News Agency, before adding that “we have no red lines, we have not excluded anyone”.
Electing a House president will be the first act of the new parliament when it convenes after the election, with MPs voting among themselves to elect a new president.
Simplified rules have been introduced for that coming election, with a candidate requiring an absolute majority – 29 of 56 MPs – in the first round to be elected, and then a simple majority in any second-round runoff between the candidates who receive the highest number of votes in the first round.
Disy’s Annita Demetriou served as House president for the duration of the last parliament, taking office in 2021 to become the first woman to hold the role, winning the support at the time of her party, Dipa, and Elam.
Current polling suggests that Diko is on course for the worst parliamentary electoral result in its 50-year history. The party has traditionally placed perennially in third place at parliamentary elections, and may win just five seats – down from nine last time around.
Nonetheless, the party’s votes could be important for the election of a House president, given that as many as seven parties look set to enter parliament, and given that Cyprus’ traditional “big two” parties also appear on course for underwhelming results, by historical standards.
According to recent polls, traditional parties Disy, Akel, and Diko will lose ground to new parties established in the last few years on election night, with social media influencer Fidias Panayiotou’s Direct Democracy Cyprus, and former auditor-general Odysseas Michaelides’ Alma, both of which were formed last year, both polling better than Diko at present.
Polling also indicates a historic high of votes and seats for Elam, which is forecast to finish in third place in the election, behind only Disy and Akel.
In light of this, Papadopoulos said on Friday that “I believe the dilemma of the elections is whether irresponsibility and populism, or seriousness and responsibility, will prevail”.
“We have seen how extreme and dangerous policies can lead the country to economic disasters,” he warned, before adding that “the fear is that with a parliament which cannot function, the entire country will be led into instability and sagas, and Cyprus does not have the luxury of sagas”.
He said that Cyprus is facing “serious challenges”, listing ongoing developments in the Middle East, the ongoing outbreak of foot and mouth disease, and the Cyprus problem.
“All of this requires seriousness, responsibility, proper planning, and we are very afraid that a parliament which will deal only with conspiracy theories, with meaningless issues, with opportunity issues simply for specific MPs to engage in self-promotion will not deal with people’s real problems,” he said.
Regarding his own party’s future, he said that despite polling, “we are optimistic that with the right organisational work, with the political positions we are promoting, with a strong ballot, that yes, we will maintain our leading and agenda-setting role in parliament”.
Nonetheless, he did acknowledge that “there is disappointment in society, there is bitterness and anger in the world”, and lamented that “some are quick to exploit this bitterness, cultivating toxicity”.
The election will take place on May 24, with a total of 56 seats up for election, including that of Dipa’s George Penintaex, who took his seat in parliament for the first time in December after Marinos Mousiouttas vacated his seat to become labour minister.
Of those 56 seats, 19 will belong to MPs from the Nicosia district, 12 to MPs from the Limassol district, 11 to MPs from the Famagusta district, six to MPs from the Larnaca district, five to MPs from the Paphos district, and three to MPs from the Kyrenia district.
The Paphos district gained an extra seat ahead of May’s election due to the growth in its voting population, with that gain coming at the Nicosia district’s expense.
The Republic of Cyprus’ constitution initially foresaw a parliament with 50 voting members, of whom 35 would be Greek Cypriots and 15 would be Turkish Cypriots, as well as non-voting observers belonging to the Armenian, Latin, and Maronite communities.
Following the breakdown of constitutional order and the outbreak of intercommunal violence in 1963, the Turkish Cypriots were unable to return to their seats in parliament, leaving just 35 voting members.
That figure was raised to 56 Greek Cypriots ahead of the 1985 parliamentary elections after the constitution was altered using the doctrine of necessity. The amendment foresees 24 Turkish Cypriots also being elected, but with the Cyprus problem remaining unsolved, this has not yet happened.
A hand grenade exploded outside the home of an elderly couple in Paphos on Thursday evening, the police confirmed on Friday.
The police said the explosion occurred at around 10.30pm at the house, in which a couple in their mid-70s reside, and that they “rushed to the scene” shortly afterwards.
Initial investigations found that the explosion had occurred in the house’s garden, and that it had caused “material damage, mainly to the windows”.
Later, it was determined that the explosion had been caused by a military-grade hand grenade.
Various items have since been recovered from the scene as evidence, with the police’s investigation into the matter ongoing.
On Friday evening, the police announced the arrest of a 59-year-old man in connection with the case. He is expected to appear in court on Saturday.
Former Turkish Cypriot leader Ersin Tatar’s wife Sibel Tatar on Friday said she is considering entering frontline politics after having “received an offer” from former Turkish Cypriot chief negotiator Kudret Ozersay, who now heads centrist, anti-corruption party the HP.
She told news website Haber Kibris that she had been given a “political offer” by Ozersay “about three weeks ago”, and that she is now “in the decision-making process”.
“I believe that in times like this, everyone who loves their country should do their part,” she said, before adding that she will inform Ozersay of her intentions “shortly”.
However, the HP sought to distance itself from claims that Tatar would stand as a candidate for the party in the next Turkish Cypriot legislative election, with the party’s secretary-general Turgut Alas saying that potential conversations between Ozersay and Tatar should not be considered to be a concrete offer.
“The HP and [Ozersay] meet everyone who requests a meeting and always keeps the path of dialogue open, because the HP, which aspires to power, acts with awareness that it must govern all segments of society fairly, equally, and impartially,” he said.
He added that “it is not the case that everyone the HP meets and everyone with whom it engages in dialogue will become a candidate for the HP”, and that Ozersay “meets everyone – there is nothing more natural than that – but it would be incorrect to interpret this as the offering of a place on the ballot”.
For most of her public life, Sibel Tatar had been reticent to openly express political opinions, but this changed last year, when she openly expressed her opposition to the Turkish Cypriot ruling coalition’s attempts to legalise the wearing of hijabs by girls in public schools.
She had written in a social media post in April last year that she would have marched alongside the 13,000 Turkish Cypriots who demonstrated against the change had she not attended a museum opening with her husband, decrying an “unnecessary change in the regulations” and extolling the “rightful reaction of the people to take to the streets”.
“Had it not been for the opening of the Cyprus doors and chests museum, the date of which was decided months ago … I would have been at the march, too,” she said.
Days later, she telephoned television channel Kanal T and doubled down on her position, saying that the changes would “definitely not be compatible with Cypriot Turkishness and the Cypriots”.
She also said that “this situation will serve no purpose other than to divide the people and to endanger our future” and that continuing to pursue the changes would “show a great lack of conscience” on the coalition’s part.
These interventions had come despite the fact that the ruling coalition’s largest party, the UBP, had already endorsed her husband’s campaign to be re-elected as Turkish Cypriot leader, while the other two parties, the DP and the YDP, followed soon afterwards.
Ersin Tatar failed to win re-election when Turkish Cypriots went to the polls last October, winning just 35.8 per cent of the vote – the lowest final percentage of any incumbent Turkish Cypriot leader at an election – with Tufan Erhurman winning the election.
Sibel Tatar’s potential joining of the HP is the latest in an undulating relationship between the Tatars and Ozersay, which began when the HP won nine seats in the Turkish Cypriot legislature at the election of January 2018, becoming the effective kingmakers for any ruling coalition.
Initially, Ozersay elected to enter into a coalition with the CTP, then led by Erhurman, alongside the DP and the TDP. However, he then withdrew from that coalition and entered into a two-party coalition with only the UBP in May 2019, with Ersin Tatar having become UBP leader in late 2018.
As such, Tatar replaced Erhurman as ‘prime minister’ and Ozersay retained the post of ‘foreign minister’, to which he had been appointed by Erhurman, though the two-party coalition was fraught with internal disagreements and controversies throughout its period in office.
On one occasion in January 2020, ‘interior minister’ of the day Aysegul Baybars, then of the HP and now an independent, believed that she had struck a deal with local stakeholders to implement a zoning plan in Famagusta, Ayios Sergios, and Trikomo, only for Tatar to say that he would “review and evaluate” it.
Baybars said at the time that she believed Tatar “does not have the authority to withhold” the plan, while fellow HP member Yenal Senin accused Tatar of “disregarding the law”.
In June 2020, in the midst of Covid-19-induced travel restrictions, a private jet with nine passengers on board landed at Ercan (Tymbou) airport, with the passengers not facing any quarantine, testing, or even immigration procedures, and instead leaving the airport through a gate used by fire engines.
The nine were part of a consortium which planned to construct a marina in the Kyrenia district town of Lapithos
‘Transport minister’ of the day Tolga Atakan, of the HP, said he had no knowledge of the incident, before later saying that cabinet had been “misled” into approving the jet’s arrival.
Following a week of dispute, Tatar agreed to dismiss ‘tourism minister’ Unal Ustel, of the UBP, who days earlier had said that blame lay with Atakan and then ‘health minister’ Ali Pilli, of the UBP.
However, when the change to the cabinet was presented to then Turkish Cypriot leader Mustafa Akinci, a second change was also proposed – replacing ‘labour minister’ Faiz Sucuoglu with Aytuc Caluda.
Akinci vetoed the appointment of Caluda as he was at the time under investigation for illegally importing third country nationals to work in the north.
In July that year, it emerged that Tatar had engaged in negotiations with the DP and the YDP to form a new coalition without the HP, with Tatar, DP leader Fikri Ataoglu, and YDP leader Erhan Arikli travelling to Ankara in August to discuss the matter.
Both Tatar and Ozersay then stood as candidates in that year’s Turkish Cypriot leadership election, and the coalition collapsed five days before that election was held after Tatar had travelled to Ankara to jointly announce the opening of Varosha to tourists alongside Turkish President Recep Tayyip Erdogan.
Ozersay said that he had elected to leave the coalition as he and his party had not been consulted on the matter. Tatar was then elected as Turkish Cypriot leader, and the UBP, by then under the leadership of Ersan Saner, entered into a coalition with the DP and the YDP that December.
By Marko Ljubicic
If you’re from Nicosia, chances are you have a strong opinion about the city’s old town. You’re either drawn to its serpentine streets, its hidden culinary gems and its melting pot character – or you avoid it entirely.
If you fall into the latter camp, you’ll be pleased to know that snug Vietnamese eatery Hat Gao sits right at the entrance, sparing you the need to navigate Ledra and its surrounding maze.
If you’re in the former, then you already know – the charm, the chaos, the pull of the place – and no introduction is necessary.
Much like the narrow, one-way street it calls home, Hat Gao is tight, compact and makes the most of the limited space.
Out front, three wooden tables and six chairs are packed so closely together they resemble a communal picnic setup. Inside, there are just two tables, spaced an elbow’s length apart.
We are cheerfully greeted and handed a well-worn menu as we sit.
A portion of summer rolls (with duck) and a portion of steamed buns (with vegetables) to start. A garlic beef pho and bulgogi chicken for mains.
As we idle, the majordomo informs us there are more tables upstairs – and that “there is a nice view.”
I’ll be brief about the upstairs room.
Equal parts garish, tawdry and slapdash, it looks like some discarded novelty that once felt like a good idea to a demented interior decorator. I am sure that if these walls could talk they’d likely be as surprised to see us as we were to see them.
The “nice view,” unsurprisingly, turns out to be a direct line of sight into someone’s balcony across the street. That’s old town living.
Downstairs, however, the kitchen is alive. Someone has cranked the music volume to 11 as laughter, singing and the sharp hiss of searing meat all drift upstairs.
Soon enough, so does our food, announced by the groaning spiral staircase.
The summer rolls arrive looking more like summer logs – plump to the point of bursting, the translucent rice paper offering a glimpse of the chef’s handiwork inside. A bite confirms that comforting mix of softness and crunch: vermicelli noodles, crisp matchstick vegetables and duck.
Tasty and vibrant, though slightly let down by a thin, somewhat indistinct dipping sauce.
The steamed vegetable buns follow, oversized and a touch dough-heavy, but still fluffy, slightly chewy and filled with something hearty and satisfying.
The bulgogi chicken is next – though what arrives is not, strictly speaking, bulgogi.
The real thing, in its Korean original form, involves thinly sliced meat, marinated, barbecued or broiled in a way that caramelises the exterior, leaving behind a charred, sweet-savoury complexity.
What we were eating was closer to a sauced and vegetabled Chinese-style stir-fry. Serviceable and tasty in its own right – but not bulgogi.
The pho, however – a specifically Vietnamese dish, which is probably not a coincidence – was everything it should be: a gargantuan bowl, steaming with simmered stock. The broth savoury, profound, restorative and fulfilling.
Coupled with the thinly sliced lean cuts of beef along with fresh mint, coriander and spring onions, it is a dish to which you could return time and again. It is an entire meal by itself, and even with a concerted effort, we leave behind a tangle of rice noodles at the bottom of the bowl.
All at the price of €9, too.
The crowded streets of the old town – with their 968 restaurants and eateries – can make it tough to choose where to spend your money and your time.
Hat Gao, for all its quirks, is certainly worth a bit of both.
VITAL STATISTICS
SPECIALTY Asian cuisine
WHERE Hat Gao, Vasiliou Voulgaroktonou 58, Nicosia
WHEN Daily, 11am – 10.30pm
CONTACT 22 002235
HOW MUCH €5-8.5 for starters, €9-12 for mains
It is a Thursday night and the old town of Nicosia is calm yet there is always a buzz within the walls. Beer bottles clink, coffee cups are brewing, guide books are open. I park my car in the zig-zagged streets and make my way to the recently-opened Ella Jazz Bar on Lykourgou 7 Street, where The Winery used to be. It now hosts Nicosia’s newest music venue and, as an admirer of jazz – and of good food and drink – I was eager to visit.
I arrive early and pull the long blue curtain back to reveal a cosy, dimly-lit bar with small elegant lamps on each table and jazz posters on the walls. There are shades of red and brown around the venue and in the centre, a brightly-lit ‘Ella’ sign above the stage.
The live music begins, and because it is Thursday that means the Charis Ioannou Quartet (Charis Ioannou, Marios Spyrou, Kyriakos Kesta and Christos Yerolatsitis) is on stage playing a set of classic jazz standards and improvisations. They play every week. Friday nights are dedicated to vinyl with DJ Harrycane, a.k.a. Charis Ioannou again, sharing his vast collection and on Saturdays, the busiest night of the week, the Charlotte Storer quintet brings powerful vocals and more jazz vibes.
The music is loud, the sound is clear. Ioannou chats to his audience without needing to use a microphone, which feels refreshing, making the whole experience feel like an intimate concert in someone’s living room.
Owner Marios Polycarpou is a lover of the old town and has spent years being in the area as a former co-owner of Patio Cocktail Bar, then working at club Zoo just outside the Venetian Walls which he has turned into MAP Boutique Hotel.
His experience means he knows a thing or two about running popular venues. He is also a musician. “I wanted to open a jazz bar because I love the genre, I love the old town and after Patio, I wanted to return to these streets,” he tells me when we sit down to chat.
“Two years ago, I decided I wanted to play the saxophone and I quickly realized it is nothing like learning the guitar which I did 12 years ago. I joined a university jazz workshop led by Charis Ioannou who’s long been in the field and starting thinking about doing some more for jazz in Cyprus.
“After a lot of research, I realized jazz is like fine dining, it is for about 10 per cent of people. They go on special occasions, anniversaries, that sort of thing. Maybe, they won’t even appreciate what it is they are eating. It’s the same with jazz.”
He stuck with the saxophone, practiced daily and decided to take the next step. “The core of my business is still very much MAP. Ella is for my love for music.
“Jazz is a very democratic language. When one speaks, the others stop and listen,” Marios says. When Ella Jazz Bar opened, Marios got to play on stage during a jam session – a full circle moment.
But the bar is not just a personal project. It is a space to offer musicians a quality sound experience, a carefully decorated jazz bar reminiscent of those in New York and Chicago and another effort to give jazz the recognition and stage presence it deserves.
“I put a lot of effort into the sound,” adds Marios. “I’d take my saxophone and measure things with a sound engineer, mainly because it was a listed building with high ceilings and no insulation. The reverb was amazing. Suddenly, I found myself studying every material and how it behaved.”
Beyond the décor, sound is perhaps the most important quality of a music venue, especially in an intimate place like Ella. “Guests want to be able to talk at their table, still listen to the music clearly and without disturbing the musician on stage. That’s why we also don’t have cutlery.”
No clicking or clacking knives and forks on plates here. Ella is all about finger food, tapas-style bites that require no cutlery so the only sound you hear is the music. I did wonder when I ordered the platter. Large mouthfuls were needed to devour a beef tartare, pulled pork, salmon rillette and a truffle mushroom quiche in one though. Delicious, yet quite a mouthful.
Although those visiting soon might find different food options as Marios plans on a new menu adopting a Japanese yakitori-style fusion cuisine with American touches. With this addition, he hopes to make Ella more than a jazz destination but a cosy bar for cocktails, food and nights out in the old town.
As new venues move outside the walled city and nights start earlier, “midlife is the new nightlife,” says Marios, the old town is no longer the bustling centre it once was.
His way to encourage more people into the area is inviting an international musician to Ella Jazz bar one Friday a month. Recently, renowned Greek trumpet player Andreas Polizogopoulos performed a fully-booked show and two more iconic jazz musicians from further away will perform at Ella soon. Who they are will be announced soon on Ella’s social media.
For those who want to get on the stage as well, there is an open jam session every last Sunday of the month. As for why the name? It is an ode to a jazz legend Marios loves – Ella Fitzgerald – and a playful nod to the Greek phrase ‘ela na pame’ (‘let’s go’ in English), inviting people back into the old town.
If its new menu is as rich as the platter and cocktail I tried, and its performances as impressive as its stars, I know I’ll be back – for food, drink, music and all that jazz.
More information @ellajazzbarand 22-082082
The government’s planned reforms to the pension system are being drawn up “precisely in the spirit” of May Day, Labour Minister Marinos Mousiouttas said at an event held to mark the day by trade union Sek.
“May 1 is an obligation for everyone, reminding us that rights are not permanently acquired if we do not protect them, if we do not adapt them to new realities, and if we do not hand them on to future generations,” he said.
He said that the government is “moving precisely in this spirit”, and that as such, “the Republic of Cyprus remains fully aligned with the European direction for the future of work, aiming to better regulate labour relations, strengthen collective bargaining and ensure the adequacy of wages”.
This, he said, is because “economic growth only has value when it is accompanied by social cohesion, justice, and peace”.
“If May Day is about dignity at the beginning of one’s working life, then pension reform is about dignity at the end of it. The worker who celebrates May Day today is tomorrow’s pensioner who deserves a dignified life, and the state must be there, strong and solvent, at every stage of every person’s life,” he said.
To this end, he said that the planned pension reforms are “the government’s most important priority” for this year, and that in this endeavour, the government is pursuing “three clear goals”.
Those goals, he said, are “the adequacy of pensions, mainly for low-income pensioners, reducing the risk of poverty in a vulnerable segment of the population, solidarity and justice through the adoption of a system which shares burdens and benefits regardless of age, gender, or form of work, and the sustainability of the system, because we want a system which will remain robust for the coming decades”.
On the final point, he said that “we owe it to our children and grandchildren” to ensure the pension system’s sustainability, before expressing hope that reforms to the pension system will enter force on January 1 next year, before returning to the matter of wider May Day celebrations.
“The May Day we celebrate today reminds us that working people do not claim charity, they claim what belongs to them – equality, justice, and social welfare. The same principle which guides our own actions remains respect for workers, for retirees, and for the families which built this country,” he said.
He added that the government will “continue to work tirelessly together” with Sek and other trade unions, as well as employers’ organisations, “for a Cyprus where no worker will be left to face an uncertain future and no pensioner will be left on the sidelines”.
The Paphos regional tourism board (Etap), in collaboration with Constantinou Bros Hotels, is hosting 36 members of the British Guild of Travel Writers in the city as part of a destination familiarisation visit.
The initiative, taking place from April 27 to May 1, forms part of a joint strategy between the tourism board and the private sector to strengthen Paphos’ international outreach, with a particular focus on enhancing its visibility in the British market.
According to the board, the programme was designed to promote authentic experiential tourism, offering participants thematic guided tours and first-hand exposure to the region’s cultural, gastronomic and natural assets.
During their stay, participating journalists visited some of Paphos’ most iconic landmarks, including the birthplace of Aphrodite, Paphos’ Old Town, the Tombs of the Kings, the Paphos Medieval Castle and the Kato Paphos Archaeological Park.
Participants were also introduced to smart digital visitor applications, which enhance interpretation and enrich the visitor experience at key archaeological sites across the region.
A strong focus has also been placed on gastronomy and authentic local experiences, with visits to wineries and agritourism establishments.
Through these activities, the board stated, guests gain direct insight into local production processes, Cypriot cuisine and the high-quality products associated with the Paphos region.
At the same time, the programme highlighted the natural environment and ecotourism potential of the destination, with a dedicated thematic route.
This includes visits to Polis Chrysochous and the Akamas Peninsula, as well as Lara Bay, the Turtle Museum in Innia, the Smigies nature trail and the Baths of Aphrodite.
Etap said that the itinerary aims to showcase “the region’s unique natural identity” and reinforce its positioning as an ecotourism destination.
As part of the visit, participants also attended a sunset cocktail reception and dinner in the presence of Deputy Minister of Tourism Kostas Koumis.
The event reflects the importance of the British market for tourism in both Paphos and Cyprus more broadly.
“The hosting of the British Guild of Travel Writers marks yet another targeted initiative by Paphos’ tourism stakeholders and local entrepreneurs to strengthen the destination’s presence in key international markets, leveraging the influence of international media and specialised travel writers to promote Paphos as a modern, authentic, and multi-thematic destination throughout the year,” the board said in a statement.
“The Paphos regional tourism board continues to consistently implement meaningful initiatives that strengthen the international profile of the destination and contribute substantially to the further enhancement of Paphos’ tourism identity,” the statement concluded.
The European Union “is our common home”, President Nikos Christodoulides said on Friday, as Cyprus marked 22 years since its accession to the trading bloc.
He described Cyprus’ joining of the EU as “the most important political development of its modern history” and “a milestone for our country and for our people which serves as a reminder of the correct strategic choice which Cyprus made to belong to the core of the European family”.
This choice, he said, constituted “a choice of peace, democracy, cooperation, justice, solidarity, respect for human rights”, and “a guarantee of security, stability, prosperity, and opportunities”.
“With its accession to the European Union 22 years ago, our country entered a new era which made it stronger and more secure, through its participation in the largest political union of states,” he said.
He added that 22 years on, “the Republic of Cyprus is a mature, reliable, and beneficial member state of the EU, located at its core, contributing substantially and effectively to the formulation and adoption of common European decisions and policies”.
“This year’s anniversary is of particular importance as our country holds the presidency of the Council of the European Union for the current six-month period,” he said, before adding that during its term, “Cyprus has been working methodically and effectively, under the vision of an ‘autonomous union, open to the world’”.
This vision, he said, foresees “greater autonomy for the EU in all areas”.
“At the same time, Cyprus, as the member state located at the southernmost tip of the EU and the closest to the Middle East and to the Gulf region, is demonstrating in practice … its ability to further highlight its role as a bridge between the European Union and the wider region, which is today, once again, being tested,” he said.
On this front, he said that “a tangible example of this role our country has undertaken” was last month’s informal European Council summit in Nicosia, which was also attended by Egyptian President Abdel Fattah El-Sisi, Crown Prince Hussein of Jordan, Lebanese President Joseph Aoun, and Syrian President Ahmed al-Sharaa.
He said that that summit saw discussions centre of “the EU’s cooperation with countries of the region for deescalation” of the conflict which broke out in the Middle East earlier this year, “as well as specific ways to strengthen the EU’s strategic partnerships with these countries”.
During the same summit, he said, Cyprus “succeeded in discussing and moving forward important issues related to the objective of the EU’s strategic autonomy”.
He said that this included efforts to create a “playbook” for mutual defence among member states, adding substance to Article 42.7 of the Treaty of the European Union, commonly referred to as the Lisbon Treaty, which is the EU’s mutual defence clause.
Additionally, he made reference to the “One Europe, One Market” roadmap, signed in Nicosia last month, which foresees reforms aimed at strengthening the European single market, and efforts towards the devising of the EU’s multiannual financial framework – its budget for the period covering the years between 2028 and 2034.
“The European Union is our common home. It is our political family, to which Cyprus has belonged since 2004. It is the common values which we share with the other 26 member states of the European Union, such as peace, democracy, justice, solidarity, progress, and prosperity,” he said.
He added that “particularly for Cyprus, which continues to suffer the consequences of the Turkish invasion and occupation of part of its territory”, the EU “is a space which offers security but also the prospect of liberation from occupation, of reunification through the resolution of the Cyprus problem”.
Turkish Cypriot leader Tufan Erhurman on Friday vowed not to “fall for the provocation” of recent comments made by both President Nikos Christodoulides and government spokesman Konstantinos Letymbiotis in relation to the Cyprus problem.
“Statements continue to pour in from the Greek Cypriot leadership. These include remarks made at meetings of civil society organisations, opening ceremonies, answers given to unrelated questions, official statements, and so on,” he began.
He said that he had told Christodoulides that “since we are continuing talks, we had warned against constantly bringing up the issue at every meeting and every opening ceremony, against trying to establish new positions in the absence of our counterpart, against poisoning the atmosphere, and against engaging in blame games”.
The Turkish Cypriot side, he said, “has taken the utmost care to avoid touching on this issue at opening ceremonies and at meetings of civil society organisations”, while when speaking to media outlets about the Cyprus problem, “we have not presented a new position unknown to our counterpart”.
“We have not shared with the public what our counterpart has said or stated unless they themselves had made it public. We have responded to only about a fifth of the statements which have come in, or even avoided responding to those,” he said.
However, he added, “it does not stop”.
“Claims and positions which have not been raised in bilateral meetings are being attempted to be introduced through the media,” he said.
Nonetheless, he said that “there is only one way for a provocation to succeed – for the person being provoked to fall for the provocation”.
“If you do not fall for the provocation, the provocation will hang in the air pointlessly. We are at the table. We are proceeding with patience, composure, seriousness, and determination,” he said.
That notwithstanding, he did pass comment on Letymbiotis’ insistence on Thursday that Christodoulides sits at the negotiating table not only as the leader of the Greek Cypriot community, but as the president of the Republic of Cyprus.
“Now, there is the issue of ‘status at the negotiating table’! … They said it once and I did not respond. Yesterday, they said it again! Everyone knows that there are currently no negotiations and that we are only at the ‘discussion table’. Regardless of what table it is, the whole knows that we are, and will be, at the table as two ‘leaders’,” he said.
He added that “all United Nations reports and records regarding these processes are public”, before pondering why such statements are being made.
“When everything is so clear, why do they keep repeating this position, which nobody, including us, accepts, and not repeat it to my face, but to the public? Of course, this claim, this ‘position’, has no value or meaning whatsoever when the facts are clear, and everyone knows this. So, what is the aim? To help towards a solution?”
The word “president” was not used in either of United Nations Secretary-General Antonio Guterres’ two reports on Cyprus which were published in January, with those reports referring to Christodoulides exclusively as “the Greek Cypriot leader”.
Previously, Christodoulides had in his own update in last July’s report on the UN good offices in Cyprus outlined his view regarding the position he holds in Cyprus talks.
“As per the longstanding practice in meetings with broader format that include the contractual parties to the 1960 treaties, I represented the Republic of Cyprus – through my capacity as president – as a contracting party to the said treaties, whilst also representing the Greek Cypriot community for the intercommunal aspects of the discussions,” he wrote.
This stance had irked Turkish Cypriot leader of the day Ersin Tatar, who wrote in his own update in the same report that “Christodoulides presented himself both as the ‘president of the republic of Cyprus’ and as the ‘representative of the Greek Cypriot community’ – thereby complicating the tone and dynamics” of talks.
Tatar also referred to himself as “the fifth president of the Turkish Republic of Northern Cyprus”.
At the same time, the UN does recognise Christodoulides as the president of the Republic of Cyprus and has recognised Greek Cypriot-led governments as governments of the Republic of Cyprus in the aftermath of the collapse of the constitutionally foreseen bicommunal Cypriot governments since 1964.
UN resolution 168, passed in March 1964, recognised the government of the day as the government of Cyprus, notwithstanding the ejection of its constitutionally mandated Turkish Cypriot members.
Additionally, the creation of the UN peacekeeping force in Cyprus (Unficyp) in 1964 was pursuant to a status of forces agreement forged upon letters sent between UN secretary-general of the day U Thant and foreign minister of the day Polycarpos Yiorkadjis.
President Nikos Christodoulides listed the achievements of his government which he says have been to the benefit of workers in his address to mark May Day on Friday.
“May Day is a day of honour and recognition of workers’ timeless struggle for decent conditions and security at work – conditions which correspond to their contribution and ensure that economic progress and development will be translated into security, prospects, and real social wellbeing for all,” he began.
He then said that listed the advancements which he says his government has secured for workers, “precisely through this reasoning and on the basis of social liberalism, which constitutes our ideological and political framework”.
The first point he listed was an increase in the minimum wage from €940 per month when he was elected in 2023 to €1,088 per month now, pointing out that this constitutes an increase of 13.6 per cent.
He then said that the tax reforms his government implemented at the beginning of the year have “increased the disposable income of around 200,000 workers”.
“This is a substantial increase in disposable income which workers immediately experienced in their salaries from the first month of the reform’s implementation, while the reform also increased the tax-free income threshold from €19,500 to €22,000 [per year],” he said.
He also pointed to an agreement reached in December regarding the payment of the cost-of-living allowance (CoLA) which saw its indexing rise from a payment of 50 per cent of the rate of the interest of the cost of living as a percentage of a worker’s salary to 66.7 per cent, with forecast rises to an eventual100 per cent in the coming months.
“At the same time, due to our responsible fiscal policy and high economic growth, according to recent data from the statistical service, the median gross monthly earnings of workers increased successively in the years 2024 and 2025 by five per cent and 4.6 per cent respectively,” he said.
As such, he added, “our efforts are continuing with reforms to the pension system, aiming, in addition to securing the long-term sustainability of the system, to strengthen the adequacy of pensions, especially for low-income pensioners, and to ensure fairness between generations”.
He also pointed out that during Cyprus’ term as the holder of the Council of the European Union’s rotating presidency, an agreement was reached to revise the coordination of national social security systems between EU member states.
This, he said, had come about “after ten years of stagnation”, with Labour Minister Marinos Mousiouttas having said on Wednesday that “the revised rules will make it easier for people who live or work in another EU country to understand, claim, and access the rights and benefits to which they are entitled, without unnecessary barriers”.
Christodoulides on Friday said that the agreement constitutes “a strong social impact which substantially strengthens the rights of workers moving within the union”, because “among other things, greater legal clarity is ensured and the effective implementation of all the rules is improved, so no worker faces bureaucratic hurdles”.
“Our government remains fully committed to supporting our workers and pensioners, adopting policies which strengthen social cohesion and ensure a stable and reliable social protection system, worthy of Cypriot society’s expectations,” he said.
He added that “we can do this because of our prudent fiscal policy, which allows us to make substantial social interventions, keeping well away from populist approaches and wishful thinking.
Two people were hospitalised after jumping out of a second-floor window and three were arrested during a search of a flat in Larnaca on Thursday night, the police said on Friday.
The police said that when officers arrived at the flat, they initially identified four people, before informing them of their reason to search the property.
At this point, the police said, “two of them jumped out of the window … and ended up on the ground, where they were injured”.
The pair were identified as a 34-year-old man and a 29-year-old woman. Both were taken by ambulance to the Larnaca general hospital, with the man said to have sustained “external injuries” while the woman broke one of her arms.
They were nonetheless arrested after the police discovered that both were residing in Cyprus without the requisite residence documents.
Meanwhile, the two people who remained inside the flat were both identified as 34-year-old men, while the search itself found a total of 25 bags containing “dry plant matter” – believed to be cannabis – totalling a combined wait of 600 grams, as well as another bag containing 346 grams of the same “dry plant matter”.
Additionally, the police said they uncovered “a large number of various pills” and “100 bottles containing an unknown substance”, as well as seven mobile phones and €815 in cash.
One of the two remaining 34-year-olds was also arrested, while the other was set free.
All three arrestees faced court proceedings at the Larnaca general hospital for the issue of a remand, as two of them remain under observation. They were all remanded in custody for seven days.
The police’s investigation into the matter is ongoing.
A 38-year-old man is in a critical condition at the Paphos general hospital after his motorcycle collided with a car being driven by a 47-year-old woman in the Paphos district village of Kissonerga, the police said on Friday.
The collision occurred at around 10.40pm on Thursday, with the police reporting that the man was not wearing a helmet at the time.
Following the collision, the woman was tested for drugs and alcohol, and no traces of either were found in her system.
On Friday, the man was transferred to a hospital in Limassol to undergo further treatment.
The police’s investigation into the matter is ongoing.
Friday’s weather is expected to be mostly clear across most of the island, with the odd cloud expected to appear in the afternoon, and isolated rain not ruled out in the mountains.
Temperatures are set to rise to 28 degrees Celsius inland, 23 degrees Celsius on the west coast, 25 degrees Celsius on the rest of the coasts, and 18 degrees Celsius in the mountains.
Overnight, the skies will remain largely clear, though more clouds are expected to gather as the night continues, with sparse fog and mist expected to form in some areas during the early hours of Saturday morning.
Temperatures are expected to drop to 14 degrees Celsius inland and on the coast and eight degrees Celsius in the mountains.
More clouds are expected to gather on Saturday, with occasional rain showers expected in parts, and the odd storm possible in the evening.
The weather will be largely the same on Sunday and Monday, with snow possible in the Troodos mountains, and high winds expected across the island.
Temperatures are expected to drop on Saturday and then remain stable until Monday at the earliest.
If you love seafood, the deep blue and local events, “come celebrate the 11th Fish Festival with us,” suggests the municipality of Polis Chrysochous. Highly anticipated, the festival has now become an annual and beloved spring tradition for the community as it brings together fishermen, chefs, visitors and children for a fun day out at the harbour.
The picturesque Latsi Harbour is once again the backdrop of the festival this Saturday, where a lively entertainment programme will unfold from 11am to 7pm. Live cooking shows and plenty of fish dishes will be served in several ways – fried, grilled, with lemon and olive oil, with potatoes and vegetables as well as many other side dishes.
A live radio link with Zenith FM will kick off the day, followed by a cooking demonstration of local fish by TV chef Chryso Lefou at 11.30am. Then, traditional dances will follow at 1.30pm and from 2pm to 6pm, live music will accompany visitors as they stroll the harbour and browse the day’s treats.
As always, a water sports flyboard show will cut the waves and provide a unique sight for festival-goers while young visitors enjoy special activities such as plays, bouncy castles and crafty workshops at the children’s corner.
“Get ready for a day full of joy, good company, and authentic seafood flavours,” conclude organisers. “The Fish Festival is a celebration of our culture and the rich bounty of our seas.”
11th Fish Festival Polis Chrysochou
Annual fish festival with food, chefs, music, shows, stands and more. May 2. Latsi Harbour, Polis Chrysochou, Paphos. 11am-7pm
Yea, I'm not a real developer.. but I'm trying. Ran into some headaches trying to get Rust 1.95 to play well with CUDA 13.2 and the llama-cpp-2 crate, so I tried to be as specific as possible in the docs once I got it to actually cargo check the workspace without massive errors.
The stack is (since I'm not a real boy.. or developer.. or whatever):
I finished writing an article today on how C++20 coroutines are unsuitable for gamedev.
One of the main issues I have with them, apart from the unavoidable heap allocation, is that the state of the coroutine is completely opaque.
If I want to use coroutines to define game logic, I won't be able to serialize/deserialize the state of a coroutine to support quicksave/quickload, network sync, and save states/introspection for debugging and prototyping.
What is the current situation with Rust coroutines? Is there a way to portably serialize their state/progress?
If not, was this issue raised before?
Hello fellow Rustaceans!
https://crates.io/crates/nya_cloud
I wanted to share a project I’ve been working on for some time now called Nya. It’s an open-source, self-hosted PaaS that leverages K3s, Docker, Helm and BIND9. The goal was to abstract the deployment process into 2 distinct requirements.
As long as it’s in a docker container, it can be deployed to Nya.
As long as it’s running in Nya, it can be reached with a domain, whether internal or external.
The reason I decided to build Nya was because I got sick of dealing with existing Cloud providers and PaaS. They would either be limited in their scope but trying too hard to lock you in (Heroku was like this to me), or making you overpay for key features, like AWS ELB. I decided I wanted to start building something for myself that I could control.
[My modest little homelab where this all started.](https://imgur.com/a/UA6w2OD)
Through the process, I started to realize I needed a tool for this, and once I started on the CLI I started to realize other people could benefit from this as well. So that’s why I decided to make it open-source.
After designing the tool I wound up with 3 distinct features:
A K3s cluster scaffolding process to make building and tearing down a cluster a simple command.
An application framework that allows pre-configuring repos with Nya's support. It simply adds a Dockerfile and values.yaml file to build the application and deploy it using pre-made Helm charts.
An event driven, asynchronous library that creates the extensible architecture of the platform.
The last feature was the most exciting one I worked on. I realized that most IaC and deployment tooling could be abstracted into asynchronous events that are just executed in a specific sequence. So I created an architecture that supported that theory, and exposed it through a library.
In my latest release I was able to put it to the test by removing Ansible playbooks that I was using for the scaffolding in the first release, and replacing it with my own system that just combined Nya actions, SSH and embedded shell scripts.
I leveraged Tokio and an event bus, and created a way to run a plan (currently called a schema) that triggers some events (called actions) sequentially. I also added a context which allows data to be stored and accessed at anytime during execution. That way, an action that’s ran later in the process could still leverage data that’s the outcome of earlier actions.
I then created a runtime object that wraps all of these objects into a struct with methods that exposes these capabilities, that can also be cloned around and reused by the actions. This way, you can actually extend Nya however you wish using a Plan and some Services (group of actions).
The Ansible removal task proved the efficacy of this design:
I created a trigger_all method that allowed me to trigger multiple events in parallel. This allowed me to install Docker on all nodes in the cluster at once.
After building the control plane, the node_token is pulled from the control plane and stored in the context with nya.set(“k3s_node_token”, token) . It’s then pulled from the context to run the install of k3s agent on all the worker nodes.
Actions can trigger other actions, taking on a type of actor-style, DAG execution process. Using this to replace Ansible turned scaffolding the cluster from several minutes to just over a minute.
I'm very excited to continue working on the library and releasing it alongside the CLI for other people to leverage Nya in their own way.
The goal of Nya was to only be opinionated on the base (K3s cluster) and the application framework to allow the apps to be deployed. Aside from that, Nya is not opinionated on your infrastructure, CI/CD pipelines, and other needs for your configuration.
I do have a lot of things that I aspire to do with Nya, such as adding more app types (workers, job, queues), observability tooling, releasing the library, and even a plugin ecosystem so that anyone can use Nya to deploy anything (think premade plugins for Redis, Memcache, Plex, MySQL, etc.)
Has anyone tackled similar async orchestration patterns in Rust? Also, has anyone used Rust in a way to extend it via a plugin system or other ecosystem besides cargo?
https://github.com/CYBRSMTH/nya
https://crates.io/crates/nya_cloud
Hi everyone,
I’ve been spending a lot of time with Rust lately, and I really wanted to build something that actually makes life easier for other devs. I realized I was getting pretty tired of manually setting up the same folder structures—like the usual Flask layout—every single time I started something new.
So, I put together a tool to handle all that scaffolding for you. It builds out your project's file tree in a few seconds, which has been a lifesaver for me when I just want to get straight to the code.
I’d love to get some feedback on it, but I’m mostly curious about your ideas. Are there specific project structures you find yourself rebuilding constantly? Let me know what you're working with, and I’ll make sure to add them to the templates.
Hope you enjoy it.
The GitHub (with all the step to use the tool) : https://github.com/DankDown10256/rust_project_templates_generator
A couple of days ago, I shared a post about porting a Go library to Rust. My goal was simply to learn and deepen my understanding of the language.
I’m truly grateful for all the compliments and encouraging words I received. I also got some blunt critiques — especially regarding the name and the design of the graphs. I completely understand the feedback, and I’m okay with it. I see it as part of the learning process.
A big thank you to those who took the time to write detailed explanations and suggestions. I really appreciate it.
Based on your feedback, I’ve already made several improvements. These are not all the changes, but I’m actively working on the rest.
What I’ve done so far:
• Improved documentation for structs, functions, and methods.
• Refactored parts of the code.
• Added more examples to the examples folder.
• Included a FEATURES.md document.
For version v0.1.4, I’ve added three new features: zero-line highlighting, threshold settings, and moving averages.
For the next release, I’m working on better error handling, serde support, and a few other improvements.
To the person who requested no_std support; I’ve noted it and plan to implement it.
Please know that this entire journey is a learning process for me. I’m not approaching this as an expert. If I don’t do something the “Rust way,” it’s not intentional. I’m still learning.
Thank you all once again for your feedback and support! 🙏
Links:
GitHub: https://github.com/neneodonkor/asciigraph-rs
Crates.io: https://crates.io/crates/asciigraph-rs/0.1.4
Sorry I absolutely suck at marketing, and naming. I saw a post about yet another not-an-ORM and remembered I actually never posted about my own! So here it is. I use it for my projects, I'm absolutely open for contributions! (please someone implement support for other DBs).
Anyway, one of my first rust projects. It does things quite differently than anything else really. You write your schemas in SQL code (it's basically language agnostic except SQL), then AI uses diffs to automatically generate migration scripts that you then can review & test (or write manually, it's just more work). Point is, migrations DO NOT DEFINE your db, nor some DSL either, it's all just SQL (DDL). You can write tests also in SQL for stored procs and functions. You can also generate json with the metadata of the DB and or code directly for other languages (like rust). More info in the read me.
I will soon need to build a desktop app, and I would like to write it in Rust. I'm currently exploring different options, mainly Dioxus, Iced, and Tauri.
From what I understand, using Leptos with Tauri could simplify the stack quite a bit. It would let me reuse Rust crates between the frontend and backend, and potentially reduce some of the communication overhead compared to a more traditional web frontend + backend setup. For people who have tried this stack, how was your experience? A few things I'm especially curious about:
How smooth is the integration between Tauri and Leptos?
Did sharing code between the frontend and backend work well in practice?
Were there any major limitations or pain points?
Would you choose this stack again for a desktop app?
I'm interested in both positive and negative experiences.
hey everyone,
i’ve been bumping into this problem a lot lately. once you have a few steps in a pipeline (parse → transform → enrich → output), things start getting kinda messy.
error handling ends up all over the place, each step looks different, and composing everything cleanly isn’t as nice as you’d expect. testing individual steps vs the whole thing also gets a bit awkward.
a lot of examples I’ve seen use dyn + trait objects, which is flexible, but feels a bit heavy if you care about performance.
i’ve been trying a more “static” approach with generics so everything is decided at compile time. it feels cleaner and faster, but also makes me wonder if I’m just reinventing something that already exists.
curious how you all are doing this in real projects:
sticking with trait objects?
going full generics?
using some crate I don’t know about?
would love to hear what’s actually worked for you
Intelligent semantic highlighting with rust analyser, full cargo support, AI completion, 245+ themes, etc.
Note: This is not some vibe coded app. It took me 2 years to complete this as both a developer and a student.
Here is the playstore link, No ads, no payments, fully open source:
https://play.google.com/store/apps/details?id=com.roxum
Here is the repo link:
Hi everyone,
While working on a Rust project, I noticed that transforming data from one form to another can be quite cumbersome. Error handling also becomes more complicated because there isn’t a consistent standard or convention in place. This lack of structure can turn into a maintenance nightmare and make writing unit tests more difficult. That’s why establishing a standardized approach to data transformation is well worth the effort.
Typically, when implementing multi-stage transformations, we rely on runtime polymorphism—specifically dyn. However, in high-throughput systems, this can introduce performance overhead when processing large volumes of data. A better alternative is to use static dispatch, where the result of each transformation step is determined at compile time. This allows the Rust compiler (and tools like rust-analyzer) to play a bigger role, helping catch errors early and identify potential issues during compilation.
With that in mind, I’ve built this crate. It not only standardizes how data transformations are written but also leverages compile-time resolution to improve performance:
https://crates.io/crates/hamon
I’d really appreciate any feedback or ideas to help further improve the crate.
Thanks for taking the time to read!
Introducing noatun, an offline-first multi-master distributed database:
It requires no central registry or coordination, and is based on replication of an automatically pruned event log, which is materialized by user-provided code into a queryable state.
I've written a manual of sorts, attempting to explain the architecture here: https://github.com/avl/noatun/blob/master/docs/docs.md
I've created a silly little game that showcases its rollback-mechanism by using it to implement time travel: https://andersmusikka.se/noatun.html (click "Launch New" to travel back in time and launch a new "player").
This has been my spare-time project for the last year or so, and I thought it's time to share it.
It is not written by AI, but manually by me. The graphics in the sample application/game were created manually by me using Inkscape. Though given their (lack of) quality I don't think any one will suspect them to be AI-generated anyway 😄 .
Blog medium link
I am new to rust and i'm also new to making desktop app
So i started using tauri and made a fairly working mvp version of assistant chatbot
Somethings are ofcourse confusing here in rust that I'm not comfortable with
So,
to learn them properly from first principle
I wrote a blog about my whole workflow
Pls have a look and tell me where should I be better?
Why another ORM? I created this because the only ORM with schema management that I like is Entity Framework Core but I don't want to go back to .NET for my upcoming project.
This project still in early state. I published the first version so I can start my project that depend on it. Feel free to create an issue if you found some bugs or need a feature request.
PSA: All code was written by a human.
With a friend we spent some months to work on a database client. We wanted something with a native feeling. So we started to check at Tauri (tauri.app) and learned some rust.
We did some benchmarks compared to other database management systems. And the results are very good, exceeding our expectations (trymambo.app if you’re interested to see the results)
But I wanted to get some feedback about your experience with Tauri if you have any. Is it a good replacement to electron? What were your biggest frustrations? Did you code any project with that?
Hello rust community!
I have been learning rust and 3D graphics for about a year now. I have been working on and of on a vulkan abstraction layer written it rust.
It contains a task graph and is aimed to be easy to use and versatile.
Here is the github:
https://github.com/pingpong74/Nexion
Its currently buggy, but I have worked hard on this. Feel free to roast my code lol
Recently, I was targeted by a credential stealer disguised as a take-home coding assessment for a job interview. Instead of running it on my host machine, I audited the repository inside an isolated Debian VM and reverse engineered the attack chain.
I wrote a detailed, step-by-step breakdown of my methodology, the OPSEC measures I used, and the exact deobfuscation techniques. You can read the full deep dive on my website:
Part 1: https://roynrishingha.com/blog/interview-trojan-horse/
Part 2: https://roynrishingha.com/blog/reverse-engineering-multi-stage-malware/
This was a massive learning experience for me, and I am looking to improve my analysis process. For the experienced analysts here:
EDIT: This post may look like it does not have anything to do with Rust. But "the HR" mentioned in the blog post reached out to me for a Senior Rust role. My last role primarily involved Rust, and now looking for Rust related roles. The primary reason of posting here is to bring awareness of such attack. So fellow Rustaceans are aware of such notorious schemes. Stay Safe. Keep Coding.
Hi Guys, I just received the phone call from Apple staff, and the staff said my game is too simple, only three rounds and then stop, so I told her that my game's classic mode is three rounds, but you can keep playing because I have a leaderboard system, and your three rounds' score is used to compete with other players all over the world, and you can play it again if you want a higher ranking, and I also add two more game mode which make the game more fun, and then, the Apple staff agree with me and said maybe it is a misunderstanding. so she said she will give me a pass!
I hope my story could help some of you facing the same situation, phone call is the best option to discuss the issues and get the best picture and solutions!
| I just added the tower building mechanics to my game! What do you think, and how can I improve it further? I’d love to hear your ideas. If the game catches your interest, adding it to your wishlist would be a huge help! https://store.steampowered.com/app/4616820/Shard_Defender_Rogue/ [link] [comments] |
I personally hate anything that impedes my ability to get straight to gameplay. I am the type of gamer that wants to load in with 0 tutorial and instructions and suffer and be confused and figure out how to play the game the way I want to play it. However I'm starting to seriously consider the need for one in a project of mine because my game design is strong (players who understand the game play for hours upon hours), but the bulk of my traffic does not play for long before quitting.
My game is in a very niche genre, so expectantly there will be a large fraction of players who just don't get it because it doesn't resonate with them and they choose not to spend time learning it... but I think it is my job to kind of engineer an onboarding process that converts a larger fraction of people outside the niche to recognize the fun/beauty of this niche.
I have good volume, but poor retention. People on steam are clicking my game, downloading it, and leaving survey feedback rating "8/10", "9/10" in my survey, but saying "onboarding unclear", and my retention times are below average when compared to other steam demos.
It's certainly possible I'm delusional but I do think I have a good game. Streamers that play it get sucked in and addicted and wont stop playing... but I have remade my onboarding level over and over and over trying to massively simplify things but players keep coming back saying "it was too confusing".
So all of that to say ... I want to know people's thoughts on if they think those "heres how this game works in 30 seconds" videos are annoying ... and let say you CAN NOT skip it.
Any opinions appreciated ... thanks!
Hey everyone,
I run Mobile Game Report (mobilegamereport.com) — an editorial site covering iOS and Android games. We write genuine reviews and features, not sponsored posts.
We cover: idle RPGs, roguelites, deckbuilders, strategy games, tower defense, and anything with real depth and staying power on mobile. We're looking to expand coverage. I'd love to build a relationship, especially with new and indie game devs and smaller agencies.
If you have something launching or recently shipped, we'd love to check it out. Submit at mobilegamereport.com/submit — takes about 2 minutes. No fees, no guarantees — if the game fits what we cover and is worth writing about, we'll cover it.
Happy to answer any questions about what we look for.
| Hi everyone, After a long development journey, we’ve just released version 1.0 of a turn-based tactics game inspired by Advance Wars. This community has always been one of the places I’ve learned from, even just by reading discussions, so I wanted to share it here and hear what people think. We aimed for a slightly faster pace and cleaner gameplay flow, while still trying to keep meaningful strategy. I know this genre has very passionate and experienced players, so honest feedback (positive or critical) would really mean a lot. I’ve included a short gameplay clip below if you’re curious. Thanks for taking the time to read. [link] [comments] |
On the final step of putting in credits into my game I only have to add some key frames adjust it and mentions then my game is done. I'm looking forward to publishing now for my first ever game.
P.s, unsure on flair so went with announcement sorry!
How do you all keep developing your games while not knowing if people will like it or not?
I've been working on a project for the past 2 years as a solo and idk how long it'll take for me to understand if it'll be successful or not. My vision is clear, I know what I want it to be, and I'm close to where I planned to be by now. So in terms of what to build, I'm not lost in regards to content.
I haven’t done any playtests or marketing because I didn't want players to have an experience on an unfinished product (even if it's for testing, I prefer to do it on a product that's close to be completed). I also didn’t record daily progress videos since I’m working solo on both design and coding, so only a very small group of people know about the project..
Hi everyone,
I’m a 3D Artist currently in Turkey, and I’m facing a bit of a mental deadlock regarding my move to Cologne. I’d love to get an honest take from those already in the industry.
My Background:
The Struggle: I’ve been grinding my portfolio and technical skills through self-study. However, I’m worried about my own self-discipline and the potential isolation of moving to a new country and just staying home to work on my portfolio. I’m torn between using the Master's as a "social and professional safety net" or just diving straight into the job market.
My Questions:
I want to be as optimized as possible, but I also want to make sure I’m not just "hiding" in academia because I’m nervous about the move.
My Portfolio:https://www.artstation.com/atakanakbulut Thanks for the help!
Hello! I've written a technical blog post about how I implemented macro-based stackless coroutines for my games in ~200 lines of C++, and why C++20 are not a good fit:
https://vittorioromeo.com/index/blog/sfex_coroutine.html
Would love to know what you think and if you use coroutines in your games in general.
Tldr; How do you get out of concept limbo and who usually takes the reins? How do you handle conflicting directions from people in different teams/backgrounds?
———
How do you conceptualize with a team?
———
Context:
I’m a hobbyist dev and I have so much difficulty conceptualizing games in indie groups. I have a humanities degree and I have typically illustrate, and have interest in interactive and computer media, as well as the underlying theories of games and art. I typically had worked with people with/are taking programming degrees, and so far only ONE group felt solid enough to move forward, but there still is this aspect of a lot of wasted effort in the art side. I think there is something so obvious about my problem that I am not seeing. And I would like to understand what it is.
———
Situation:
It feels like I constantly am at odds with other people or other people keep encroaching on what would be my areas of work(as was previously agreed on.)
If not that, most groups I’ve worked with have almost zero documentation and mock-up making. I don’t feel like I share the same vocabulary with most people and keep finding it really hard to keep up because it feels like working in the dark and constantly just winging in or being stuck in circles answering questions, drawing mock-ups, juggling so many inputs on art direction about the writing and illustration while game design and programming basically shut down. There’s a constant tug of war between the teams and it feels like art is almost always pressured to go first while also made to have the most unused work in terms of “final” assets.
There either isn’t a designated “director” role and a project manager micro manages everything while also being vague about what they want (leading to a very confused team and scapegoated middle management), or there is one but everyone has a different idea regardless except the programming people who, since it’s their degree, wall it off just for themselves. One time with a micromanaging project manager I did try to do the assimilating role of getting every department know what direction when every department except the one the PM was part of was stagnant but the pm blamed me when I brought up that we don’t really have a direction.
How do you break this limbo of each department waiting for the other to go first? What should I do or not do in these situations? Who should actually lead this aspect of the game or am I just tweaking too hard..
Hey there. I'm currently working on a pretty large game dev pipeline, with (currently) two separate Unreal projects for two systems which I am working on at different times. I'd like to unify this system safely, but I'm unsure how to navigate this.
For context on my end - one of these two systems is a massive project for generating city environments, and I've been slowly refining the assets and generation code as I go. The other project is a parkour system, which isn't very asset-heavy but still contains a lot of scripts and logic files that're thrown around. Both of these projects have a ton of fragile project-specific dependencies.
My question here is: how do game devs usually combine/add to huge projects like this, which will inevitably throw tons of unsorted dependency files into /content/ (the root folder), while still keeping proper version control?
I'm familiar with git as a dev, but with some of these game projects being over 100gb of raw asset data, I'm unsure how branching or version control would actually work. I'd like to safely experiment without going through the pain of saving giant version dumps manually every time something major changes.
Hey everyone,
I'm currently prototyping the core placement mechanics for a management sim, and I wanted to share some design iterations that solved a massive UX headache for me.
I'm building a game where you manage a dark ride/haunted house from a control room. You drag and drop traps, lights, and actors into the rooms. Initially, I hit a massive wall with how building felt. Here is how I solved it by combining two different genres.
1. The Free-Placement Trap
Initially, I wanted maximum player freedom. Drag a prop, drop it anywhere on the blueprint. Sounds great on paper, but in a management context, it was a UX nightmare. Players were clipping items into walls, struggling to align traps with the ride tracks, and the placement felt 'floaty'.
The Fix: I scrapped free movement and implemented a strict virtual grid system. Now, when you drag an item over the room overlay, it snaps perfectly to a predetermined grid. This single change instantly gave it that satisfying, chunky "Tycoon" feel. It removes decision fatigue about exact pixel placement, and on the backend, it makes collision logic and pathing 10x easier to manage.
2. The 'Live Deckbuilding' Menu
The second issue was the build menu itself. Most management games use static categories (e.g., Tabs for 'Props', 'Actors', 'Lights'). I found this encouraged players to min-max the exact same optimal layouts every single time. It got boring fast.
I threw out the static build menu and turned it into a live deckbuilding mechanic. At the bottom of the screen, you have a 'hand' of cards. You draw or reroll these items (e.g., pulling a 'Chainsaw Actor' card or a 'Cursed Gramophone' card). To build, you drag the card directly from your hand onto the grid.
Best of both worlds
By combining a rigid spatial system (the grid) with an unpredictable resource system (the deck), the entire gameplay loop changed. It shifted from "building the mathematically perfect room" to "making the best tactical use of the hand you're dealt within the space you have." It forces the player to improvise their management strategy on the fly.
Has anyone else experimented with replacing traditional tycoon build menus with card/deckbuilding mechanics? I'd love to hear your thoughts on how you balanced the RNG so players don't feel completely screwed over by bad draws.
| I am open for Feedback! If you like what you see, please consider adding it to your Wishlist on Steam: https://store.steampowered.com/app/3927490/Realmbreaker_Awakening/ Thank you! [link] [comments] |
Sorry if this is kind of a dumb question
I’m learning to make pixel art/sprites for games and I’m a bit confused about copyright.
If I take an existing sprite and edit it (like changing colors, hair, clothes, small details), does it become mine? Or is it still considered the original artist’s work? Does it depend on the license?
And what about having a sprite open on the side and recreating it from scratch (like imagining something similar) — at what point does it stop being “inspiration” and start being copying?
I’m not trying to steal anything, I just want to understand what’s actually allowed, especially if I want to use it in a commercial project later.
How different does it need to be to be safe?
Ty, and sorry again if this is obvious or kinda dumb
Hey all, hope your dev journey's are doing well! I am a hobby developer and have started an embarrasing amount of coding projects over the years. Unfortunatly none i've ever really finished, but I look at it as experience and learning projects that help me understand coding and development.
One of my most recent projects I am working on is a hybrid RPG/political management simulation where you play the role of either a member of the House, Senate, or President (currently US only) and can choose a variety of different "scenerios" to throw yourself into spanning from the American Revolution to modern day. It is of course a very ambitious project, and comes with a lot of inspiration from games like Victoria III, Crusador Kings, EU4, etc.
One of the biggest things is that I am no way a graphical designer, I have found that switching to React and using JS and CSS with Tailwind inside of Electron with a handful other implementations have made development quicker, more robust, and universal for all platforms (even if it doesn't give that "AAA" kind of vibe). Primarily the game is a "operator sim" for lack of a better term, but I am planning on adding a TopoJSON style map at some point in the future. I love simulators and especially ones that follow history, or even allow you to make up your own. No "rules" just actions and consequences.
Has anyone ever attempted a project like this/in this genre and do you have any tips that would help make this ambitious project into something that could finally be my first finished one? How should planning and pacing be (I have a habit of trying to add everything all at once and bounce to different modules or systems on a whim, thanks ADHD)
By no means do I ever expect a Victoria III, but focus more on the realistic simulation Would love and appriciate thoughts, comments, and/or DMs!!!
Hey everyone,
We just published the demo for our new game, Pinkybites, about two days ago. The page is set to Public, our cover image is up, and the downloadable files are attached. (it is an adult project but it listed as free/no payments so there shouldn't be any problem)
However, we noticed it’s still not showing up in the search results, tag pages, or the "Recently Added" feed. I know itch.io has a manual indexing queue for new games to prevent spam, but I just wanted to ask the community:
Is a 2+ day wait pretty standard for the queue right now, or is there a chance we missed a setting/flagged something by accident?
Appreciate any insight! Thanks.
🏆 I want to create a puzzle game with Godot.
I already know a little programming, but I sometimes struggle with certain parts, especially with dialogues and multiple-choice options. Do you know of or recommend any Godot libraries that would make creation easier?
The game is like Dungeons & Dragons, but in 2.5D. It's a different concept, but similar, so you get the idea.
Any help would be greatly appreciated. Thanks. 👍
I guess you get money when Epic asks you to offer your game for free, but how much and is worth it?
I made some shitty translation app to go through the whole process of publishing an app on Steam. Well, a few days after I published it some random russian guy posted a negative review.
What he said in review is mostly legit and I don't care about it at all, my issue is that at the end he advertises his app. (well, might not be his app, but his steam name matches the author of the app)
(edit: just a small update because of some misunderstanding I saw in the comments, the part below is not the full review, the full review is longer and he mainly talk about the monetization system of the app). The advertisement is the last paragraph of the review.
The text in question:
Если же Вас интересует именно "помощник" для изучения языков или быстрого перевода с помощью OCR, советую обратить внимание на <his app>. Эту программу можно скачать в Microsoft Store, и она обладает рядом преимуществ перед "<my app>". Например, Вы сможете безлимитно использовать приложение как словарь (причем даже в офлайн-режиме) или же задействовать AI-ассистента, который не только переведет текст на экране, но и интегрирует его прямо в изображение. При этом PRO-версия программы предлагает куда более демократичные цены, если Вы решите пользоваться AI-переводом на постоянной основе.
which translates to:
If you are looking specifically for a "language assistant" or a fast OCR-based translator, I recommend checking out <his app>. Available in the Microsoft Store, it offers several advantages over <my app>. For instance, you can use it as an unlimited dictionary (even offline) or utilize its AI assistant, which not only translates on-screen text but integrates it directly into the image. Furthermore, the PRO version offers much more reasonable pricing if you decide to use the AI translation features on a regular basis.
First I marked it as "Violates Community Guidelines" on it's page and nothing happened. Then, I contacted steam via steamworks, explained the situation, linked them the articles, etc.
Their 1st response:
Hello,
It doesn't look like this review meets our criteria for removal.
You can read about that criteria and other info about how we moderate user reviews here, Steam User Reviews.
As always, If you see content on Steam that violates the rules, use the built in Report feature to flag that for our moderators, or let us know here in this conversation.
Steam Support
My response:
Hello, thanks for your response. I read the criteria before opening this ticket, more exactly this point under Customer Review Guidelines: "Do not use reviews for commercial purposes. Examples include: advertisements, referrals, or promotions.", so I fail to see how it does not meet your criteria for removal, since advertisements are clearly included here.
Thanks
Their response:
I appreciate your follow up, but we won’t be removing this one.
Steam Support
It clearly says in their guidelines that advertising is not allowed in reviews, but it looks like they just don't care.
So, I guess we can go ahead and advertise our apps/games in reviews now?
One month ago,
I started game development with sns.
I got 230 followers in x, 70 followers in bluesky, 60 followers in thread.
and I finished a prototype as well.
Today I started to upload contents in YouTube and Instagram, tictalk as well.
Game devs, I want to learn from your mistakes! Tell me, what is your biggest mistake and what have you learned? What's your advice?
| With the release of Raylib 6.0 and the raylib crate not getting any releases or PRs merged for over 6 months, I forked the project from the latest crates release (5.5.1) and cleaned up the repo, brought in upstream bug fixes, made some of my own fixes, and added the new Raylib 6.0 functions. I've been using sola-raylib for a week in my own projects and so far so good. Massive credit to the various contributors of the upstream—I think it's a really fantastic set of bindings. I've been making games with Rust for a couple of years now, and the thing I most want is maturity and stability. Bevy, Fyrox, Macroquad, ggez, chuot, etc. are all interesting projects, but I value that Raylib is many major versions in and actively maintained by raysan5. raylib-rs (and therefore sola-raylib) feel like writing Rust, not C, which I think is a bindings crate at its best. sola-raylib can be used as a drop-in replacement for the raylib crate. I've been using it to make a Lua game engine called Usagi with live reloading and cross-platform export. So far, so good! [link] [comments] |
| submitted by /u/FootballElectronic28 [link] [comments] |
A guide to software performance in Go (and in general) in both theory and practice.
I've tried to fill in some of the gaps in the currently existing ecosystem here and walk people through the actual process of using profiling, benchmarking, etc. which are not discussed nearly as often as fancy new features. Plus there's some pretty cool memory & code-generation tricks if you stick it out to the end ;).
Sorry this is so much later (and wordier!) than I promised, but I love software performance and wanted to make sure I got it right. I meant to cover hardware and assembler, but this is already the longest article I've ever written, so that will have to wait for next time.
P.S: I also wrote an article about the history, philosophy, & practical wisdom of programming and engineering called The Software Talmud: Anatomy of Automation. Didn't feel appropriate to post here, but if you like THIS article, I hope you do me the favor of checking that one out.
Hey guys, i was wondering if in modern backends written in golang, is mux being used for routing or is there something new?
Building a service in Go where ai agents call our internal apis and I need to add per-agent auth, rate limiting per agent identity, and logging of which agent made what call. Standard stuff but specifically for agent traffic not regular users.
I can build this as middleware in Go and it would be clean and minimal, probably a couple hundred lines with the standard library. But I'm wondering if I'm reinventing something that already exists as a gateway product and whether the maintenance burden of custom middleware is worth it when the requirements keep growing.
Anyone gone down this path? Did you build it or buy it?
v1.10.0 of go-mssqldb (Microsoft's official SQL Server driver for Go) just dropped. Some notable changes:
Reliability fixes:
SET XACT_ABORT ON), the driver didn't notice. Subsequent statements would silently auto-commit outside the transaction. Now you get a clear error. This one bit us in production.Standards compliance:
sql.OpenDB(connector) patterns properly. Closes a long-standing issue (#236).ColumnTypes() with sql_variant columns.New features:
civil.NullDate, civil.NullTime, civil.NullDateTime for cleaner nullable date/time handling without *time.Time.mssql driver name.Developer experience:
Upgrade:
go get github.com/microsoft/go-mssqldb@v1.10.0 Full change log: https://github.com/microsoft/go-mssqldb/blob/main/CHANGELOG.md
Full blog post: go-mssqldb v1.10.0: Better Reliability, Developer Experience, and Standards Compliance | Microsoft Community Hub
Happy to answer questions about the driver.
| The mode helps to fold Each feature could be turned off, and overall I find the code more concise and readable. That is the only feature I miss after I switched from Goland (apart from a good code debugger). [link] [comments] |
Hey everyone,
I've been working on a tool using golang called gh-relay that I think a lot of you dealing with private GitHub repos might find useful. Ever needed to quickly show a contractor or auditor some code without going through the whole song and dance of adding them as a collaborator, dealing with IT, legal, paid seats, and then cleaning it all up? Yeah, me too. That's why I built this.
gh-relay lets you share a read-only browser view of your private repo via a temporary URL. You run a simple CLI command, share the link, and when you're done (or the --expire time is up), you hit Ctrl+C and the link is dead. Zero lingering access, zero fuss. Your GitHub token never leaves your machine, and the guest can't clone, push, or download anything. It's designed for security and convenience.
It's open source, built in Go, and uses Cloudflare or ngrok for secure tunnels. I'd love for you to check it out and give me some feedback!
[Link to GitHub Repo: https://github.com/soub4i/gh-relay]
This is a monthly recurring post. Clicking the flair will allow you to see all previous posts.
Please adhere to the following rules when posting:
Rules for individuals:
Rules for employers:
COMPANY: [Company name; ideally link to your company's website or careers page.]
TYPE: [Full time, part time, internship, contract, etc.]
DESCRIPTION: [What does your team/company do, and what are you using Go for? How much experience are you seeking and what seniority levels are you hiring for? The more details the better.]
LOCATION: [Where are your office or offices located? If your workplace language isn't English-speaking, please specify it.]
ESTIMATED COMPENSATION: [Please attempt to provide at least a rough expectation of wages/salary.If you can't state a number for compensation, omit this field. Do not just say "competitive". Everyone says their compensation is "competitive".If you are listing several positions in the "Description" field above, then feel free to include this information inline above, and put "See above" in this field.If compensation is expected to be offset by other benefits, then please include that information here as well.]
REMOTE: [Do you offer the option of working remotely? If so, do you require employees to live in certain areas or time zones?]
VISA: [Does your company sponsor visas?]
CONTACT: [How can someone get in touch with you?]
I started building Pollen last summer. It's a single Go binary that turns a few machines into a self-organising mesh with a WASM runtime on top. It uses a convergent, CRDT structure and local decisions to determine topology and workload placement, so there's no control plane, no scheduler, no leader, etc. Partitions are recovered deterministically when nodes regain connectivity.
You can start a cluster in two commands. The nodes infer their own capabilities, so "public" nodes will automatically act as relays for NAT'd nodes who want to establish a direct, hole-punched connection. For nodes that can't be reached directly, relays invisibly proxy messages where they need to go.
Ed25519 underpins identity and properties can be baked in to certificates and workload specs, so access can be controlled across the cluster.
My aim is for Pollen to turn a collection of heterogeneous machines into a blob of generic compute, that can run absolutely anywhere. Think: a Raspberry Pi acting as though it has the power of a server-farm.
Ergonomics is also a top priority, some examples...
Establish a two-node cluster with a public relay
pln init pln bootstrap ssh user@host Seed and call a WASM function
pln seed ./hello.wasm pln call hello greet '{"name":"world"}' Register and call a TCP/UDP service
# machine A pln serve 8080 api # machine B pln connect api curl localhost:8080 You can find the full set of capabilities at the docs site.
Please check it out and let me know what you think!
| Hey everyone, A few months ago, I launched TakaTime—a cross-platform, open-source coding telemetry engine I built to track my programming habits without relying on paid or cloud-locked services. Thanks to the massive support and feedback from the community, we quickly scaled past 500 active installs! Today, I’m incredibly excited to share the v2.2 UI Polish Update. A lot of you pointed out that the original terminal dashboard would occasionally "break" or wrap weirdly if you resized your terminal window. For this release, I completely rewrote the rendering engine. What's new in v2.2: Flawless Terminal UI: Rebuilt from the ground up using Charm's lipgloss bounding boxes. The layouts, paddings, and vertical separators now mathematically lock into place. You can squish and stretch your terminal, and the grid will remain perfectly aligned. Native 365-Day Heatmap: Dropped the old string-based space rendering for a strict, column-by-column chronological grid that maps your exact coding intensity over the last year. Way Smarter Tracking: We no longer rely purely on "file saves" to log time. The plugins now track active keystrokes with smart overlap deduplication on the Golang backend, giving a vastly more accurate picture of your actual time in the editor. Jupyter Notebooks & Antigravity: Added native tracking support for Jupyter Notebooks in VS Code, and yes, even the antigravity editor. GitHub README Integration: The backend can now auto-generate a sleek, formatted Markdown/PNG report to pin directly to your GitHub profile. The Stack: Backend & CLI: Golang (using MongoDB for local/remote self-hosting) Dashboard: Bubble Tea & Lipgloss Plugins: Lua (Neovim) and JS (VS Code) I built this primarily to have a fast, keyboard-driven workflow that stays entirely out of the way while I code. If you want to own your own data and have a beautiful terminal dashboard to look at your weekly stats, I’d love for you to try it out. Links: GitHub Repo: https://github.com/Rtarun3606k/TakaTime VS Code Marketplace: https://marketplace.visualstudio.com/items?itemName=Rtarun3606k.takatime Massive shoutout to the contributors who have jumped in to help with PRs recently. Let me know what you think of the new UI, and I’m happy to answer any questions about the Bubbletea implementation or the Go backend! [link] [comments] |
| When you don’t know what ScopeGuard is: A Go static analyzer that tightens unnecessarily wide variable scopes. Install it with For example:
ScopeGuard also has, IMHO, one of the best shadow detections built in. Try typescript-go: This flags: It has a fix mode that renames the shadowed variable (the outer one, because it has a wider scope) by appending numeric suffixes, making it easy to spot which variable is referenced. When you don't like AI, you can stop here. ScopeGuard works standalone and has When you use AI, ScopeGuard has an MCP server that can be added to your assistant of choice (see the README for instructions) to help the assistant create more idiomatic, maintainable code or fix existing issues. [link] [comments] |
Some issues I have been following seem to have been closed by what appears to be a bot:
I can't figure out if https://github.com/mromaszewicz is a real person
Hi all. I've been working on Journal as a side project for a few years and just shipped v1.0. Posting here because the design choices are pretty Go-specific and I'd value feedback from this community in particular.
The pitch: it's a self-hosted web journal. Single binary, SQLite storage, REST API with an OpenAPI spec, web UI for reading and writing entries in Markdown. I use it daily for my own journalling.
The interesting bit (for this sub): I've kept the external dependency surface deliberately small. Three direct dependencies in go.mod: a SQLite driver, a Markdown renderer, and golang.org/x/text. Routing, templates, sessions, middleware, all from the standard library. The aim was a codebase that someone newer to Go could clone and actually read through to understand how a real web app fits together. Around 100% test coverage on the application packages.
A few specific things I'd be interested in feedback on:
cmd/journal/main.go, internal packages, etc.). I restructured it for v1.0 to follow more idiomatic conventions but it's always worth a second pair of eyes.testing package.v1.0 also involved cutting some things that had accumulated: a Giphy integration, AWS Lambda deployment support, a gulp/sass/webpack frontend pipeline. Sometimes the most useful release is the one where you delete code.
Repo: https://github.com/jamiefdhurst/journal Write-up on the v1.0 changes: https://jamiehurst.co.uk/2026-04-29_journal-v1
Happy to answer questions or take pull requests. Code review is genuinely welcome.
| I've been working on Matcha, a terminal-first email client written in Go on top of Bubble Tea. It started as "I want to read mail without leaving tmux" and grew into a real client. Sharing it here in case it's useful to anyone else. Repo: https://github.com/floatpane/matcha Docs: https://docs.matcha.floatpane.com What it does
Security This was the part I cared about most.
Install Nightly builds and tagged releases on GitHub. macOS, Linux, Windows. Discord: https://discord.gg/jVnYTeSPV8 Happy to answer questions. [link] [comments] |
Ideally open sources ones to learn from. I know of https://github.com/avelino/awesome-go, but it seems rather focused on game libs, not on games using these libs.
Can anyone explain why I am getting two different version strings based on whether GOROOT it set versus when called within a package?
bash $ /usr/local/go/bin/go version go version go1.26.2 linux/amd64 $ md5sum /usr/local/go/bin/go 7d6b0bfc432317c28eca07c22d4ab193 /usr/local/go/bin/go $ $GOROOT/go version bash: /go: No such file or directory $ export GOROOT=/usr/local/go/bin/ $ md5sum $GOROOT/go 7d6b0bfc432317c28eca07c22d4ab193 /usr/local/go/bin//go $ $GOROOT/go version go version go1.25.5 linux/amd64
| Repo: https://github.com/jeremiah-masters/dlht Hi, I've been working on a Go implementation of DLHT, a lock-free resizable hash table based on the DLHT paper, which for write-heavy operations at scale, outperforms sync.Map by up to 60x and the current fastest popular alternative, xsync.Map by 30x. The key idea to achieve this is in using double-width compare-and-swap (DWCAS) atomic operations for table entry modifications as well as using cache-line aligned buckets and maintaining kv-pair entry state in a 64-bit header to provide strongly consistent operations. Unlike most other concurrent hash tables in Go (such as sync.Map, xsync.Map, cornelk, orcaman, etc) all table operations including resize are lock-free, which allows it to scale almost linearly as the cpu core count increases, whereas other lock-based implementations begin to throttle under contention even at low-moderate core counts. I've also implemented a comprehensive suite of unit tests, including linearizability tests using porcupine, during which I also found a memory ordering issue with sync.Map (https://github.com/anishathalye/porcupine/issues/40). Additionally, the implementation is formally verified using a Quint model to verify that the data structure operations are correct. I also used this spec to verify a non-trivial, novel extension to the DLHT paper, as the original design does not support Delete operations which return the deleted value. Any feedback, comments, thoughts or questions are welcome. I'm keen to see what you guys think of this! [link] [comments] |
| I pushed glyph v0.6.0 today so thought I'd drop an update here. If you've not had chance to look yet, Glyph is a declarative terminal UI framework for Go. Docs: https://useglyph.sh Headlines in this release:
Really happy with where things are going, especially the in/out stuff in this release; it takes something that generally tends to be a bit of a faff when writing UI's and makes it a one-liner right in the template. Happy to hear feedback if you manage to get around to trying it out! Cheers [link] [comments] |
Been working on this for a while and finally added a browser extension piece that I think makes it useful day-to-day. Sharing in case anyone else finds it handy.
What GoTutor does:
The browser extension:
Caveats / known stuff:
Chrome: https://chromewebstore.google.com/detail/gotutor/jpmhhnokngjcnoefeiipogbhlnpmcdbh
Firefox: https://addons.mozilla.org/en-US/firefox/addon/gotutor/