Tuesday, April 28, 2026
a56f9c97-9043-493c-a423-eb0b12e51ffb
| Summary | ⛅️ Mostly clear until night. |
|---|---|
| Temperature Range | 15°C to 23°C (59°F to 73°F) |
| Feels Like | Low: 59°F | High: 76°F |
| Humidity | 80% |
| Wind | 13 km/h (8 mph), Direction: 239° |
| Precipitation | Probability: 26%, Type: No precipitation expected |
| Sunrise / Sunset | 🌅 06:01 AM / 🌇 07:30 PM |
| Moon Phase | Waxing Gibbous (40%) |
| Cloud Cover | 20% |
| Pressure | 1013.08 hPa |
| Dew Point | 60.09°F |
| Visibility | 6.18 miles |
Kiosk owners in Cyprus warned on Monday that proposed increases in tobacco taxation risk pushing consumers into illegal channels, weakening legal retail trade and reducing state revenues rather than increasing them.
Speaking to Sigma, kiosks’ association (Sykade) President Andreas Theodoulou said while taxation remains a legitimate public health tool, its impact in Cyprus must be assessed within the island’s specific market conditions.
“Cyprus presents a peculiarity not found in other EU states,” Theodoulou said, referring to the Green Line and the ease of access to untaxed products from the north.
He added that “large tax increases affect not only demand but also the place of purchase of products.”
He said price differences between legal and illegal markets already influence consumer behaviour, and further increases could intensify this shift.
“The market shows that tobacco products are extremely sensitive to price changes,” he said.
According to estimates provided by the association, approximately 13 per cent of cigarette consumption and 53 per cent of rolling tobacco consumption already comes from the north.
Theodoulou warned that further tax rises could expand this proportion.
“This development is not simply a commercial phenomenon but a matter of fiscal loss and market control,” he said.
The warning comes amid ongoing EU discussions on revising excise duties for tobacco and nicotine products, including e-cigarettes and heated tobacco products.
Industry representatives argue that such measures could significantly increase retail prices in Cyprus.
Sykade estimates that a pack of cigarettes, currently priced at around €4.50 to €5, could rise to between €8 and €8.50 under proposed adjustments.
“If implemented without adjustments, we estimate that within a year there will be an increasing market shift towards uncontrolled channels,” Theodoulou said.
He also highlighted the importance of tobacco products for the retail sector, stressing that “tobacco products are a key asset for convenience stores,” warning that “a significant reduction in legal sales would have a multiplier effect, including increased risk for small family businesses”.
Sykade further argued that rising illicit trade would not only affect retailers but also state finances.
The association estimated that illegal tobacco already results in losses exceeding €50 million annually.
The association has called for Cyprus to seek flexibility within the EU framework, citing the island’s division and enforcement challenges.
Among its proposals are recognition of the Green Line as a factor in policy design, stronger customs enforcement, harsher penalties for smuggling, and a phased transition period of up to ten years for new tax rates.
Foreign Minister Constantinos Kombos on Monday held a series of meetings with his counterparts from the Association of Southeast Asian Nations (Asean) on the sidelines of the day’s EU-Asean ministerial meeting in Brunei.
In a post on social media, he said the representation highlights the importance of Southeast Asia as a strategic priority for both Europe and Cyprus.
“Our country remains consistently present, strengthening its diplomatic footprint in a region of particular geopolitical and economic importance,” he said.
The first minister he met was Brunei’s second minister of foreign affairs Dato Erwan Yusof, whom he thanked for holding the meeting.
“We took stock of relations between Cyprus and Brunei and identified opportunities to further expand bilateral engagement. Regional developments were also addressed, including issues related to stability, connectivity, and the security of energy and trade flows,” he said.
He added that with Cyprus currently holding the Council of the European Union’s rotating presidency, the island “will continue working closely with Brunei and Asean partners to advance … relations”.
Next, he met Singaporean Foreign Minister Vivian Balakrishnan, discussing bilateral relations and “the potential to further deepen cooperation in areas of mutual economic and strategic interest”.
He then met Timor-Leste Foreign Minister Bendito dos Santos Freitas, saying that in that meeting, “we … reaffirmed our shared commitment to international law, sovereignty, and territorial integrity”, while also discussing ways to develop relations between Cyprus and Timor-Leste.
Those relations, he said, can be strengthened “through enhanced cooperation in multilateral for a and in areas such as the blue economy”.
His final meeting of the day was with Laotian Foreign Minister Thongsavanh Phomvihane, with whom he discussed bilateral relations, among other matters.
Asean is an intergovernmental forum of 11 states in Southeast Asia. Alongside the four states of which Kombos met the foreign minister, its member states are Cambodia, Indonesia, Malaysia, Myanmar, the Philippines, Thailand, and Vietnam, while Papua New Guinea is an observer.
Former Greek Cypriot chief negotiator for the Cyprus problem Andreas Mavroyiannis was on Monday elected as chairman of the United Nations’ International Law Commission.
He will serve in the post until April next year.
The International Law Commission is a body of experts which is tasked by the UN with developing and codifying international law. It comprises 34 members, who are elected for five-year terms by the UN general assembly.
Mavroyiannis was initially elected to the commission in 2023.
Prior to his election to the commission, he had been a career diplomat, having served in the foreign ministry since 1987.
During his time in the foreign ministry, he served as Cyprus’ ambassador to the UN between 2008 and 2008, before later serving as the island’s ambassador to the European Union between 2008 and 2011.
He then served as European affairs deputy minister under late president Demetris Christofias, between 2011 and 2013, before being named as his successor Nicos Anastasiades’ chief negotiator for the Cyprus problem.
He was chief negotiator during the last round of formal negotiations aimed at solving the Cyprus problem, which took place at the Swiss ski resort of Crans-Montana in 2017, before later returning to the role of ambassador to the UN between 2019 and 2021.
In 2023, he ran for president, winning the endorsement of Akel. He finished second, behind Nikos Christodoulides, winning 48 per cent of the vote in the election’s second round.
The government’s handling of the ‘videogate’ affair leaves a great deal to be desired, and it even suggests the administration may have been subjected to extortion, opposition Akel said on Monday.
In early January, a short video clip surfaced on social media, alleging that associates of President Nikos Christodoulides accepted cash from donors to bypass election campaign spending caps. The video, effectively portraying a pay-for-play scheme, led to the resignation of the president’s chief of staff – one of the persons appearing in the eight-minute clip.
Initially, the government spoke of a “hybrid attack” against the Republic of Cyprus. Authorities are investigating. Then in early April, Black Cube – an Israeli private intelligence agency – claimed it was behind the video. The company said it had been commissioned to expose corrupt dealings in Cyprus.
On Monday, Akel said that serious questions continue to hover over the affair.
The party stated: “Restoring institutions requires transparency and catharsis – not a cover-up and silence.
“Mr Christodoulides has gone quiet about ‘videogate’ and the mechanism of graft that was set up at the presidential palace, even after Black Cube took responsibility for the video, which collapsed the narrative about a so-called ‘hybrid attack’ and ‘a foreign hand’. But the questions are multiplying.”
Akel asked what the 29 hours of raw footage – reportedly tracked down by authorities – contain.
Akel then asked, “how does the government respond to media reports linking the material held by Black Cube to the government’s decision to satisfy the request by the convicted Israeli Simon Aykut to be transferred to Israel?”
This month, Aykut, an Israeli businessman earlier sentenced to five years in prison for the usurpation of Greek Cypriot property in the north, was transferred to Israel to serve out the remainder of his sentence.
“Can the government give assurances that ‘videogate’ and the practices at the presidential palace did not render it susceptible to blackmail?” Akel asked.
Turkish Cypriot ‘prime minister’ Unal Ustel on Monday said that plans for a status of forces agreement to be signed to allow for French troops to be stationed in Cyprus is “extremely dangerous, provocative, and an unacceptable step”.
He said the plans “are likely to seriously damage the atmosphere of peace and tranquillity on the island”, and that President Nikos Christodoulides and “people of his mindset” speak “on the one hand … of a new negotiation process, while on the other ignoring and disregarding the Turkish Cypriot people”.
“This contradictory stance clearly reveals his true intentions,” he said.
He then added that “any military presence or action in Cyprus requires the consent and approval of the Turkish Cypriot people”, and that “any action taken without this approval is null and void under international law”.
To this end, he described the statements made by French President Emmanuel Macron during his visit to the island last week as “arrogant”.
“France, known for its exploitative approach to almost every country it enters, can only offer the Greek Cypriots great disappointment in the long run,” he added, before saying that “France, as an EU member state, poses one of the biggest obstacles to a fair and lasting solution in Cyprus with its attempts to deploy troops to the island”.
This, he said, is also “a clear indication of the European Union’s hypocritical policy” towards Cyprus.
“No member state of the European Union can take decisions or engage in actions which disregard the sovereignty rights and security of the Turkish Republic of Northern Cyprus,” he said.
He added that “the Turkish Cypriot people will continue to operate the institutions of their own state on the basis of peace, security, and justice, while remaining within the framework of international law”.
“What is expected from Macron and from the EU is that they abandon their colonial mindset regarding the Cyprus issue and adopt a fair stance,” he said, before warning that “steps taken, and those intended to be taken, which disregard the Turkish Cypriots will inevitably receive the necessary response”.
He then said he wished to issue “a clear warning to Greek Cypriot leader Nikos Christodoulides”.
“You are transforming southern Cyprus into a base for foreign soldiers and a sphere of influence for foreign powers. The consequences of this policy will neither benefit you, nor the Greek Cypriot people. My advice is to abandon these dangerous steps, which will jeopardise your future, as soon as possible,” he said.
“Otherwise, you will be the one who loses again.”
Government spokesman Konstantinos Letymbiotis had earlier in the day announced that Cyprus is set to sign a status of forces agreement with France, with Christodoulides saying that negotiations have entered a “formal phase”.
The agreement, he said, will “provide for the presence of French forces on Cypriot territory for humanitarian purposes”.
Macron had spoken at length on the matter of defence during his visit to Cyprus, saying that the mass deployment of European military hardware in and around Cyprus after the island was hit by an Iranian-made drone last month, “constituted a reaffirmation of our determination to secure Europe’s space”.
“I said it in a simple way on March 9, that when Cyprus was attacked, it was Europe which was attacked,” he said.
As such, he said, “we therefore reinforced defence capabilities in the region with the deployment of military assets, in particular with the French carrier strike group” belonging to the aircraft carrier the Charles de Gaulle, which has been in the region since last month.
“This support and this concrete manifestation of the solidarity which links us as members of the European Union, and in terms of relations between France and Cyprus, was bolstered in December in the form of the strategic partnership,” he said, referring to the deal he had signed with Christodoulides in Paris five months ago.
Police on Monday continued investigations into ‘Sandy’, looking into claims of supposedly dodgy money transfers allegedly paid as ‘hush money’ to the woman, the central figure in the affair.
The probe is based on a trove of text messages – communications between the woman referred to as ‘Sandy’ and other individuals – with ‘Sandy’ claiming she was raped by former Supreme Court judge Michalakis Christodoulou years ago.
Her allegations, brought to light by journalist Makarios Drousiotis, also concern a supposed clandestine political-judicial cabal operating in the shadows.
Police have reportedly begun looking into the claims of wire transfers, to see if they can be verified. They have interviewed a number of people. According to Phileleftheros, detectives will next request access to bank accounts.
The money transfers – including one of €500,000 – were purportedly made to either ‘Sandy’ or to a company based in Greece, or both. The amounts were supposedly paid to persuade ‘Sandy’ not to divulge her information.
Former president Nicos Anastasiades has already given a statement to police. He has denied the existence of a so-called ‘Rosicrucian brotherhood’ pulling the strings in Cyprus.
Reports also said that police have interviewed former Akel leader Andros Kyprianou. He was asked about claims that he had proposed Giorgos Savvides for attorney-general, as part of purported backdoor wheeling and dealing among the political class.
Kyprianou is said to have categorically denied these allegations.
Also giving statements to the police were former Supreme Court judge Myron Nikolatos, MP Costis Efstathiou and prominent attorney Polis Polyviou.
Meanwhile last week the government said it has requested the assistance of the US Federal Bureau of Investigation (FBI).
It’s understood the FBI officers would assist in assessing statements and depositions given to the police.
The date of their arrival in Cyprus is not yet clear.
The Cyprus Mail on Monday tried to contact the police spokesperson, who could not be reached as he was overseas.
A number of photos provided by ‘Sandy’ from her cache of text messages have already been shown to have been copy-pasted from the internet.
‘Sandy’ herself has reportedly given a statement to police. Unconfirmed reports said she confessed to having fabricated hundreds of text messages.
Efforts were made to prevent Syrian President Ahmed al-Sharaa from participating in last week’s summit of European and regional leaders in Nicosia, President Nikos Christodoulides said on Monday.
Al-Sharaa had, alongside Egyptian President Abdel Fattah El-Sisi, Lebanese President Joseph Aoun and Crown Prince Hussein of Jordan, attended last Friday’s informal European Council summit upon Christodoulides’ invite, with the latter telling reporters that “I consider the acceptance of our invitation important”.
“Although I had some information that some tried to prevent his participation in the European Council summit, he chose to be here, spoke publicly, and raised during the discussions how he sees the developments in the European Union’s relations in Syria,” he said.
He added that Cyprus, “as the European Union member state in the region, continues to play a substantial role oriented towards results”.
“This is what interests us. Results,” he said.
He had earlier said that “Syria is a neighbouring state to the Republic of Cyprus” and that “as part of our efforts to bring the European Union closer [to the region], of course, Syria is also included”.
Additionally, he had said that his Foreign Minister Constantinos Kombos had been “the first foreign minister to visit Syria” after the fall of Bashar al-Assad, though while Kombos was among the first, visiting Damascus on February 20 last year. Turkey’s Hakan Fidan had visited the same city on December 22, 2024.
The incumbent Syrian government’s close relations with Turkey may offer an indication regarding the question of to whom Christodoulides was referring in his claims that “some” had tried to prevent al-Sharaa from visiting Cyprus.
Al-Sharaa’s second foreign visit as Syrian president was to Turkey, the first having been to Saudi Arabia.
During that visit, he had met Turkish President Recep Tayyip Erdogan, and said that Turkey’s “honourable and positive support for the just cause of the Syrian people serves as a strong example of the brotherhood between the two countries”.
More recently, he attended this month’s Antalya diplomacy forum and held a bilateral meeting with Erdogan there.
Immediately after al-Sharaa came to power, strong ties between him and Turkey had fuelled fears in Greek and Greek Cypriot circles that the two countries may delineate their exclusive economic zones (EEZ) without consulting Cyprus and thus encroach on the Republic of Cyprus’ claim.
The fears arose after Turkish Transport Minister Abdulkadir Uraloglu made reference to such plans December 2024, though he walked his statements back on Christmas Eve that year, saying any such agreement would “take into account international law”.
Thus far, no such agreement has been forthcoming, though Turkish Energy Minister Alparslan Bayraktar said in December that he hoped one will be signed this year.
Strict adherence to European Union protocols is essential in addressing the threat of foot and mouth disease, President Nikos Christodoulides on Monday while signalling his willingness to meet livestock farmers amid rising tensions.
“I have no problem meeting with anyone who asks to meet me,” he said, referring to livestock farmers, noting that without cooperation from all sides “we will not have positive results.”
Responding to a remark that farmers are warning of escalating measures while claiming the presidential palace is refusing to meet them, the president told journalists that “from the very first moment I have been in contact with all farmers. The European Commissioner himself came.
“We are in contact with the European Union. What I want to impress on everyone is that if the necessary cooperation had existed up to today, the results would clearly have been better. As long as there is no cooperation from those concerned, unfortunately we will not have positive results.”
He emphasised that the priority is to follow the protocols applied across EU member states to manage the disease risk.
“What truly matters is that first and foremost we comply with and follow the protocols applied in all countries, so that we can address this major threat, and we are here to deal with all the challenges and problems that arise,” he said.
The president also pointed to a specific government plan to address income losses in the sector, including compensation measures.
“For us, the livestock sector is very important and we are here to support all farmers, whom we approach as partners, despite developments that were not positive, such as those we saw recently during the informal European Council,” he added.
On Thursday demonstrations reached a peak when farmers effectively closed the Rizoelia roundabout, calling for the president to intervene after an unsuccessful meeting with the agriculture minister.
Veterinary services have issued eight fines totalling €45,000 for illegal animal movements linked to the spread of the disease, and six further cases have been referred to police.
The outbreak has already affected more than 100 livestock units across Cyprus, with tens of thousands of animals culled as part of containment efforts.
It is almost time for the finalists of Fengaros High 2026 to take the stage. On May 9, at Dali Amphitheatre, the bands 7ate9, FeverFew, Floor 25, Radiance and Spiked Sample will perform original music live at Fengaros High.
Following an open call, live auditions and masterclasses with the artistic committee, the five finalists – all born in 2007 or later – will take to the stage to perform their music in front of a live audience. One night, five bands, with Elena Olympiou as the host of the evening.
At the concert, there will be a live voting process involving both the artistic committee and the audience. Each attendee will receive a unique voting code to vote for their favourite act of Fengaros High 2026. The most voted band will receive a €2,000 voucher to record at Studio eleven63 and the top three winners will all get to perform at Fengaros Festival. All five finalists will also have the opportunity to attend Fengaros Music Village at half price.
Fengaros High
Young talents perform live, mentored by an artistic committee and compete. May 9. Dali Amphitheatre, Nicosia. fengaros.com/high
Transport Minister Alexis Vafeades on Monday expressed confusion at Larnaca mayor Andreas Vyras’ plans to stage a protest over perceived delays in progress towards redevelopment of the town’s port and marina.
“I had already agreed with Mr Vyras [that] the matter would follow a specific implementation path and that at the end of the month, they would present the results of the study concerning land development,” he said.
However, he said, “Mr Vyras decided on a different course”, though he said that the government will nonetheless “continue to work in this direction, upon which we had agreed”.
“I believe that what we had said continues to apply,” he said, before adding that the government will “continue to produce results so that we can proceed with the implementation of the project”.
“Although Mr Vyras seems to disagree, I insist that we should not wait for all the studies to be finished to start the projects, which are not in dispute,” he said.
To this end, he said that “no one doubts that the marina project can proceed today”.
“Why wait all this time and wait another two or three months for the marina? Why not start immediately?” he asked.
He then added that the ports authority has already been given the green light to begin consultations to implement the marina’s development.
“Our job is to move it forward and this is the government’s intention – to move it forward. If there has been a delay in this study, that burden is mine to bear, and I understand that. I apologise to Larnaca, but that does not mean that we have the right to delay this work any longer,” he said.
He added that in pushing on immediately with work to redevelop the marina, the government will “show the people of Larnaca that we are moving forward” and “not create delays like this which may set us back two or three months for this project”.
“I am not saying that land developments or studies for land development should not be completed, but regarding the marina, why should we wait?”
Vyras’ discontent is sourced from what he perceives as a lack of clarity regarding development plans related to the marina, while he also lamented what he described as gaps in a study on the matter submitted by Greece’s national investment fund, GrowthFund.
He has said that GrowthFund’s study does not adequately address the matter of land development.
In addition, he has decried perceived delays in progress on the project and what he has called a lack of coordination between state institutions.
The government had in January last year placed the Hellenic Republic Asset Development Fund (HRDAF) in the driving seat of the port and marina development project, with the company now set to play a key role in deciding the next steps for both sites.
HRADF currently operates a number of ports in Greece, including Alexandroupoli, Lavrio and Volos, Kavala’s commercial Philip II port, and the Corfu megayacht marina.
The government announced a little over a year ago that the development of Larnaca’s port and marina would be split into two projects, while Vafeades also brought forward the expected date of completion to September 2026, compared to the previously estimated date of March 2027.
The move comes after the government in May 2024 terminated its agreementwith Kition Ocean Holdings, the company it had initially entrusted with a combined project which was set to cost €1.2 billion.
The contract was terminated after the government accused Kition of refusing to pay a requisite financial guarantee for the project’s operation and maintenance.
The government had insisted Kition pay a total of €8m, while Kition believed the figure had been agreed at €4.2m.
The wealth declarations of current and former government ministers were published on Monday, showing a marked disparity among the political class.
The filings concerned the ministers affected by the cabinet reshuffle of last December – the new ministers who came in, and the ministers who departed.
By law, new ministers – including deputy ministers – must file their wealth declarations within four months of assuming office. Departing ministers must do the same within four months of leaving office.
Sitting atop this list is former energy minister George Papanastasiou. His personal net worth (net assets) comes to €3.1 million. His family’s net assets clock in at €4.7 million.
Papanastasiou owns a number of properties – including a €740,000 apartment in Limassol – and has substantial savings in Cypriot and foreign banks.
His account balance with Bank of Cyprus is reported as €100,000; he also has savings with Eurobank and Lloyd’s International.
The ex-minister lists three vehicles among his assets – a Porsche Cayman, a BMW and an Audi – worth a combined €97,000.
Next is deputy welfare minister Klea Papaellina, with net assets of €1.17 million. She owns several properties (around 30), many of which are located in Kyrenia, and also in Athens.
Her bank savings come to €1.118 million – in Cypriot and foreign banks.
Justice Minister Costas Fitiris has net assets of €1.26 million. The immovable property he owns is worth €1.34 million – it includes residences and land in Paralimni and Larnaca.
Fitiris’ bank balance comes to €75,000; he also has a bank loan of €180,000.
Former justice minister Marios Hartsiotis – now presidential commissioner – has a net worth of €713,000. He owns properties in Cyprus and Greece, plus three cars. He is in debt to the banks to the tune of €183,000.
Yiannis Panayiotou, the former labour minister, reports net assets of €469,000. His immovable property is worth approximately €619,000. He has also taken out a loan of €210,000.
Former deputy welfare minister Marilena Evangelou has a personal net worth of €394,000. She owns property, a Volvo worth €19,000, while her total bank savings come to €270,000.
Lastly, Health Minister Neophytos Charalambides reports liabilities of €360,000. Despite owning immovable property and vehicles – including a Lexus – he owes €445,000 to Eurobank.
In Greek, wealth declarations are known as ‘pothen esches’ – literally, where did you get it from.
A renewed United Nations initiative on the Cyprus issue is already in progress, President Nikos Christodoulides said on Monday, indicating that diplomatic efforts to resume negotiations have been ongoing since early March.
Speaking in Nicosia, Christodoulides said the process began following contacts between the UN Secretary-General Antonio Guterres and Turkish president Recep Tayyip Erdogan, preceding his own meeting with the UN chief in Brussels.
“The new effort will not start in July, for it has actually already begun” he said, rejecting suggestions that developments would only commence later in the year.
Christodoulides outlined a dual-track approach pursued by the government, operating simultaneously at United Nations and European Union level.
“The necessary preparatory work is being done both at the level of the secretary-general, but also at the level of the personal envoy,” he said, adding that contact is ongoing “so that data can be created” to enable the convening of an expanded conference aimed at resuming talks.
He indicated that such a conference would involve broader participation, in line with previous formats, with the objective of restarting negotiations from where they were interrupted.
Christodoulides also confirmed that efforts are underway to arrange a meeting with Turkish Cypriot leader Tufan Erhurman, with proposed dates already exchanged.
“Some dates have been proposed, and an official announcement is expected within the next 24 hours,” he said.
The prospect of renewed talks follows a series of contacts and exchanges in recent months, including meetings between the two leaders under UN auspices, during which discussions have focused on confidence building measures and the conditions required for a return to formal negotiations.
Erhurman has expressed reservations regarding the format of an enlarged meeting, advocating instead for direct engagement between the two communities.
He has also outlined a set of proposals centred on political equality, time-bound negotiations and the preservation of previous agreements, alongside guarantees related to the continuation of talks.
Christodoulides reiterated that the aim remains the resumption of negotiations within the framework of United Nations Security Council resolutions, with the current diplomatic activity focused on creating the necessary conditions for meaningful progress.
First Lady Philippa Karsera, currently serving as Director of Consular Affairs and Schengen at the foreign ministry, was on Monday promoted to permanent ambassador.
The Public Service Commission said she was one of four people promoted to fill vacant permanent ambassador positions in the foreign service.
The commission said the appointments will take effect from May 15.
The other three promotions are Thessalia Siampou who currently serves as political director at the foreign ministry; Maria Michael who is currently the country’s permanent representative to the United Nations; and Charis Moritsis who previously served as the first Cyprus ambassador to Tokyo.
According to earlier reports, Karsera took part in the selection process as normal, in line with the procedures set out in the relevant legislation.
Karsera sat written examinations as required and, last Friday appeared before the Public Service Commission for an interview as part of the process.
Cyprus is “in a less favourable position” than other countries inside the European Union regarding the security of its oil supply, Transport Minister Alexis Vafeades said on Monday.
He did stress that the island is “not experiencing a fuel shortage today”, but acknowledged during comments made on the sidelines of a meeting of the European transport federation’s executive committee in Nicosia that “we are in a position where we need to be aware of what is happening”.
To this end, he said that Cyprus also requires to “have good coordination” with other EU member states and with the European Commission, “so that if things develop into something more unfavourable, we can take our measures”.
“There is preparatory work at a strategic level, a recording of all the data we have to hand in Cyprus. Cyprus is in a less favourable position compared to central Europe,” he said, before pointing out the island’s “lack of connection” with central European countries in the field of energy.
“We are an island state. We depend on aviation and shipping. That is why we must manage it with this in mind,” he said.
He then added that “how the situation in the Middle East will develop is unpredictable”, saying that “this has created some problems in the fuel supply chain”.
Nonetheless, he said, “we are dutifully monitoring the situation, precisely so that we can take appropriate measures in a timely manner, if we can”.
This, he said, was the reason behind the informal meeting of European transport ministers which he chaired last week.
“We have discussed the issue, and we have come up with some ideas,” he said.
Before that meeting, he accepted that there is the “possibility” of fuel shortages impacting Cyprus and Europe.
“We have before us the possibility, and I stress the word possibility, of a shortage in transport fuel. This evolving geopolitical crisis in the Middle East has highlighted that Europe may have a short-term issue in supply of fuel,” he said.
He also stressed the need to “be aware” of a “demand issue” in terms of fuel consumption which “needs to be neutralised” in the medium and longe term, in effect calling for fuel consumption rates across Europe to be better managed.
Later that day, he was asked about reports of potential jet fuel shortages, and stressed that despite the possibility of there being fuel shortages in the future, “we are not in any dangerous situation”.
Earlier, European Transport Commissioner Apostolos Tzitzikostas had said on the possibility of fuel shortages that reports that Europe may be on the brink of running out of jet fuel are “not an accurate reflection of the situation”.
Electricity Authority (EAC) unions signaled on Monday that further industrial action is on the way, following their 24-hour strike last week.
Last Thursday the EAC headquarters and customer service offices were closed for business. Supply was not disrupted.
Union boss Kyriacos Tafounas told media on Monday that their complaints – which they aired month ago – have to do with two issues: the adequacy of electricity supply, and the cost of electricity.
“There are things that need to be done if we want to ensure [electricity] sufficiency, and there are things that can be done to bring down the cost of electricity,” Tafounas said.
Otherwise, the price of electricity will keep going up.
One of their gripes is the recent law that passed allowing the Cyprus Telecommunications Authority – another semi-governmental organisation – to operate in the energy market.
In addition, Tafounas said, they have indicated that “Cyprus is a small, isolated island that relies on conventional fuel which produce emissions…so the only solution is to allow the EAC to have a significant share in renewables”.
This can be done either through solar parks owned by the EAC, or letting the EAC buy power from private businesses.
According to the union rep, in 2023 the state gave the EAC the green light to operate solar parks; but the problem is that there is no longer any private land available to host such facilities, because the land has been used up by private companies operating their own solar parks.
“The state must grant state land to the EAC for solar parks which will generate cheap energy,” Tafounas said.
The EAC, he argued, has already demonstrated it can produce inexpensive energy from renewables – at 5 to 6 cents per kilowatt-hour.
Regarding the adequacy of electricity supply, Tafounas said the EAC has been effectively hamstrung by the state.
He explained that the Dhekelia power plant needs new turbines. Also, the flagship power station at Vasiliko has turbines that urgently need upgrades – they need to be fitted with anti-pollution technology ensuring the machines can continue operating beyond 2029 when, due to stricter EU regulations on emissions, they would have to be taken offline.
Tafounas also complained that the EAC has been fettered when it comes to desalination.
In 2018 the organisation had proposed building a large desalination plant in Moni, with a capacity of 60,000 tonnes. They also wanted to expand the current desalination unit located at Vasiliko.
“In the end, we found out that they will construct a desalination unit at Mazotos with a private company, to which they will grant state land and €85 million to build the facility on virgin land.”
The government’s ‘e-Kalathi’ application “essentially goes unnoticed”, supermarkets’ association chairman Andreas Hadjiadamou said on Monday.
He had been asked by the Cyprus News Agency whether the application has had an impact on supermarkets’ operations or consumer habits, and answered in the negative.
“We do not see any impact from e-Kalathi, speaking both with consumers and with our members. We, the supermarkets, essentially participate, as we are compelled to by law, but beyond that, nothing less, nothing more, it is something which essentially goes unnoticed,” he said.
The e-Kalathi platform was designed to inform consumers of the prices of essential goods and allow them to compare the prices thereof.
It had initially been hoped that it would drive prices down by providing a layer of transparency regarding prices, with then commerce minister George Papanastasiou having said last year that “the power of the consumer stems from knowledge and correct information”.
However, the consumers’ association complained last week that this has not been the case, and had previously lamented that the application falls “well below consumer expectation”.
“Unfortunately, the promises made to us were flatly not kept and consumers were left unprotected once again,” it said.
It had complained that the government had “promised that consumers would be given the opportunity to see the total cost of their basket of shopping”, but that “practically and technically, this possibility does not exist”.
“Consumers have to look for each product separately to find the cheapest supermarket,” it said.
Recent developments in the Eastern Mediterranean underline the urgent need for a solution to the Cyprus problem, Secretary General of PEO union Sotiroula Charalambous said on Monday, warning that the current situation does not guarantee stability or security.
Charalambous said a comprehensive settlement could contribute to demilitarisation, stability and peace in the region.
“Our country can become a zone of peace, security and stability, where all workers live and work under conditions of social justice and dignity,” she said reading from a joint declaration of PEO and Turkish Cypriot trade unions.
On what she described as a symbolic day for the working class around the world, Charalambous said the joint declaration reiterates that workers “do not compromise with division” and that the reunification of Cyprus remains a priority.
She reaffirmed commitment to a solution within the agreed framework of a bizonal, bicommunal federation with political equality, “with one state, one sovereignty, one citizenship and one international personality.”
She also expressed concern that there has been no substantial progress on the Cyprus issue for almost a decade. “The stagnation and absence of dialogue, the ongoing deadlock, lead to the entrenchment of partition,” she said, calling on the two leaders to show the necessary political will to resume talks from where they left off at the Crans Montana talks of 2017.
Beyond the Cyprus issue, Charalambous said workers across the island face common challenges, including rising living costs, low wages, insecurity, attacks on collective agreements and insufficient health and safety measures.
Under this year’s slogan Common Struggle for a Common Homeland Against Wars and Exploitation, she added workers will continue their struggle for a peaceful and reunified Cyprus and a better world.
The declaration was also read in Turkish by Semih Kolozali, leader of Turkish Cypriot union Dev-İş union.
Charalambous said PEO’s May Day programme on Friday includes a gathering at Eleftheria Square at 5pm, with addresses by herself and the Akel secretary-general, followed by a march to the Ledra Palace in the buffer zone, where participants will join Turkish Cypriot unions.
A speech will be delivered by Pambis Kyritsis, secretary-general of the World Federation of Trade Unions, followed by a cultural programme.
In the lead-up to May Day, PEO is organising 60 gatherings in neighbourhoods and more than 50 meetings in workplaces.
Kolozali said Turkish Cypriot unions will hold their own gathering at a park near Kyrenia Gate in the north of Nicosia before marching to the buffer zone, calling on all those who support workers to participate.
Charalambous also welcomed recent mobilisations by Turkish Cypriot unions over the cost-of-living allowance, saying they demonstrated the shared challenges facing workers across the island.
Kolozali said unions had waged a difficult struggle over the Cost of Living in the past month, but the ‘government’ had not backed down and was now also targeting the minimum wage. He said this context of ongoing attacks on workers would shape this year’s May Day events on Friday.
There have been no unjustified price rises at supermarkets since conflict broke out in the Middle East at the beginning of last month, the consumer protection service’s competition branch head Aliki Iordanou said on Monday.
She said that her department has been monitoring 45 categories of basic products, with the prices of products in 33 of those categories going up on average since the beginning of March, though she stressed that supermarkets in particular are “holding back increases” with the aim of keeping prices down for consumers.
To this end, she said that the rate of inflation in Cyprus during the month of March sat at just 1.2 per cent – the second-lowest rate of any European Union member state.
With this in mind, she said that there is currently no need for the government to roll out price controls on fuel or any other basic goods, saying that such a proposition is “not justified by domestic or international conditions”.
“The service constantly monitors prices, based on the formula it has and based on its monitoring mechanism,” she said, with this monitoring taking into account the price of fuel which Cyprus imports from both Greece and Israel.
Following on from this, she said that her department then monitors the “entire chain of fuel import and distribution” to ensure that any price increases for consumers are “justified”.
“If they are not justified, the service will recommend to the [commerce] minister the imposition of price controls, which, as I said, would be difficult in such cases,” she said.
She added that her department is “continuously monitoring prices, with all the factors I explained”.
“Neither in the food market nor in the fuel market is there any reason to impose price controls. There are no price increases which are not justified and which would justify imposing price controls,” she said.
Does Yes have a Cyprus connection? In a word, yes. There are actually two obvious links.
The more obvious is that Yes – though made by an Israeli filmmaker, and set mostly in Israel – is a co-production with Cyprus, with around 40 per cent of the film being shot here. “Sometimes Cyprus was playing Cyprus [actually not Cyprus per se, but an unnamed Greek island],” explains writer-director Nadav Lapid, “and sometimes Cyprus was playing Tel Aviv”.
The second connection is that Yes is a film about denial, the denial needed to live in Israel now while ignoring the genocide – Lapid’s own word – in Gaza. It’s a theme that resonates with Cypriots (on both sides, but more in the Republic), who go about their daily lives while steadfastly ignoring the elephant across the Green Line.
Yes played at Cyprus Film Days in Nicosia and Limassol, and Lapid – the festival’s most high-profile guest, a world-class director who’s won major prizes at Cannes, Berlin and Locarno – sat down for a chat with artistic director Argyro Nicolaou a few hours before the Nicosia screening, also taking questions from the audience.
He began writing the film in 2022, he says, but rejigged it after the events of October 7, 2023, incorporating the shock of that day and its aftermath – and actually started filming exactly a year later, by which time Israeli society was consumed by what he calls a “morbid vivacity… The ecstasy of disaster and war, a terrible ecstatic state of mind of death and killing”.
That said, the screenplay he’d already written pre-Gaza remained very relevant.
That script, he believes, “describes Israeli society – and maybe not only Israeli – one second before the 7th of October…
“It’s about our world, the chaos of our world. It describes a society addicted to power and money, where vulgarity and hyper-nationalism walk hand in hand. A society despising any sense of tenderness – any complexity, any fragility, any sensitivity.”
After all, he adds, “when I speak about now, when I speak about Israel, I don’t care about Netanyahu… I think Netanyahu is a consequence – and all his ministers and all his government, they’re only a consequence of the collective soul of a place, of a collective psyche.
“And for me, I’m much more curious about – I dunno, how people eat their breakfasts in Tel Aviv than the latest speech of Netanyahu.” What intrigues him, he says, is above all the “melody” – the rhythm and cadence of Israel, the way people live and love and go to the beach, even with the hard (but hidden) truth of Gaza thrumming like an ominous backbeat.
As for the society itself, “I think that for many, many years I’ve felt that Israel is a sick society”.
Yoav, the hero of his 2019 Synonyms (winner of the Golden Bear at Berlin), heads to Paris on a one-way ticket, hoping to flee what he sees as the madness of his country. 51-year-old Lapid made that journey in real life, and has lived in Paris with his wife and son for several years now – though, responding to a question from the audience, he insisted he doesn’t see himself as an exile.
Actually, he added, “I feel myself not just 100 per cent, but 1,000 per cent Israeli. Living in Paris will not change that.
“So, when I talk about a sick Israeli soul, I talk about myself as well.”
That’s what gives the film its complexity – though it doesn’t endear it to everyone. Yes was among the most high-profile films at the festival – but opinions were mixed, judging by the post-screening crowd a few hours later.
“It’s like he’s trying to save Israel’s soul,” one audience member told me disapprovingly, the implication being that such a quest was unworthy and morally dubious. “It’s not easy to love you guys,” sighs the film’s protagonist at one point, doubtless speaking for Lapid himself – but most non-Israelis seem unmoved by the difficulty of ‘loving’ a nation in the grip of genocidal ecstasy.
Then again, the film (which explicitly states that Israelis have become like the Germans under Nazism) hasn’t exactly pleased the folks back home either – or the great and good of the cinema Establishment.
Some tried to dissuade him from even making it. “I can tell you that many people – people who I like – told me, ‘Maybe it would be more clever to wait five or six years, like Coppola [with the Vietnam war] in Apocalypse Now…
“Yes is a film that deals with cowardice. But while doing the film, I didn’t imagine how common and popular cowardice is, mainly among institutions,” he says acerbically.
“After this year’s experience, I wonder why people make so many films about heroes, when actually the most popular quality is cowardice. We should have thousands of films about cowards, because there are so many of them.
“Some of them direct the most important cinema institutions.”
In the end, like all true artists, Lapid isn’t interested in reflecting the audience’s politics back at them, nor shying away from the contradictions in his own psyche.
“Maybe the only interest I find in making films,” he admits, “is trying to express what I feel when I look around. And trying to connect with the present, this actual moment”. Is Yes a prickly time capsule that’ll stand the test of time? In a word, yes.
Cyprus recorded 42 road deaths per million inhabitants in 2024, placing it below the European Union average of 44, Eurostat data released on Monday showed.
In 2024, traffic accidents in the EU resulted in 19,934 deaths, a decrease from 20,384 in 2023, a 2.2 per cent drop and also the second year of improvement.
Cyprus ranks somewhere in the middle.
Sweden had the lowest fatality rate at 20 deaths per million, followed by Malta at 21 and Denmark at 24.
Romania had the highest at 78 deaths per million, followed by Bulgaria at 74 and Greece at 64.
In the last ten years, road deaths in the EU dropped by 17.4 per cent, despite brief rises seen in 2021 and 2022.
Eurostat data indicate that traffic accidents are particularly high in Germany, Italy, and Spain, with some areas seeing tens of thousands of incidents each year.
Starting today, in our Copilot Student plan, we are removing GPT-5.3-Codex from the model picker. It remains available through auto model selection.
Auto model selection is built to match each request with the strongest model for the job, which means less time toggling settings and more time coding. It’s also how we keep the Student plan performant and free for learners around the world.
This change is part of the temporary reliability and performance measures we recently rolled out across Copilot Individual plans (Free, Pro, Pro+, and Student) as we prepare for the broader transition to usage-based billing.
To explore all models available in GitHub Copilot Student, see our documentation on supported models.
For the full context on upcoming billing changes, read our announcement about GitHub Copilot moving to usage-based billing.
Check our SDP and Copilot FAQ for answers to common questions. Join the GitHub Education Community to share your feedback.
Editor’s note (April 27, 2026): Updated the link for the GitHub Education Community.
The post Copilot Student GPT-5.3-Codex removal from model picker appeared first on The GitHub Blog.
Copilot cloud agent now starts up over 20% faster, thanks to optimized runner environments built with GitHub Actions custom images.
When you assign an issue to Copilot, start a task from the Agents tab, or mention @copilot in a pull request, the agent spins up a cloud-based environment to do its work. By prebuilding that environment with a custom Actions image, startup overhead has been significantly reduced, getting Copilot to work on your code faster than before.
This builds on the 50% startup improvement shipped in March, continuing to shorten the feedback loop when you work with Copilot cloud agent.
To learn more, see the Copilot cloud agent documentation.
The post Copilot cloud agent starts 20% faster with Actions custom images appeared first on The GitHub Blog.
Developers and engineering teams worldwide use GitHub Copilot for high-quality, agent-powered code reviews on every pull request. We understand that any change is significant to our customers, especially when it relates to billing, so we are sharing this update early to help you plan and prepare. The sections below outline what is changing, why, and how to plan accordingly.
Last month, we shared how GitHub Copilot code review runs on agentic tool-calling architecture, allowing the code review agent to pull in broader repository context and produce more relevant feedback on each pull request. That agentic architecture runs on GitHub Actions using GitHub-hosted runners (Note: GitHub Copilot code review also supports self-hosted runners and GitHub-hosted larger runners which are billed at different rates than standard GitHub-hosted runners.)
Starting June 1, 2026, each Copilot code review will be billed in two ways:
This change applies to the following plans:
This includes Copilot code reviews from non-licensed users and billed via direct org billing.
This change takes effect on June 1, 2026. Until that day, Copilot code review usage will continue to draw only from your existing Copilot premium request unit (PRU) allowance and will not consume GitHub Actions minutes.
To prepare for the billing change, we recommend the following.
Learn more about these changes in our documentation.
And join the discussion within GitHub Community.
The post GitHub Copilot code review will start consuming GitHub Actions minutes on June 1, 2026 appeared first on The GitHub Blog.
Every time I prepare a Dockerfile for a Rust project, I want the binary to be as fast as possible. The problem: with distributed deployments, you never know what hardware it'll run on. So you compile for generic and leave performance on the table.
One command wraps your binary for multiple CPU targets. One file ships. At startup it picks the fastest version the host can run — no extra CI pipeline, no runtime dispatch code in your app.
Benchmark on Raptor Lake with zero hand-written SIMD: 154ms vs 2771ms for generic.
Linux x86_64 + AArch64. Early but working — would love reports of the actual CPU selection on different hardware. I did my best to make selection safe and correct, but the hardware variety is huge and some processors may not be detected properly.
I have been in a team working mainly with python, JavaScript, and Java; I wrote the same service in all of those languages before just to prove my team wrong that they were the wrong direction to go...
After writing the service in rust it has been undeniably more performative by a significant amount, so they are all convinced!
My problem is: How do I deal with the "bus factor", I am the only one in the team who understands the in's and outs of rust. What happens if I am away, or get hit buy a bus... How can my team deal with this?
What are the recommended resources to share with a team?
This is an infrastructure, not language, question.
Does anyone know when crates.io started enforcing that all downloads use a user-agent header?
I'm using BitBake w/ meta-lts-mixins and crate downloads have stopped working with 403 Forbidden. I didn't realise until now that bitbake wasn't including a user-agent header. The proper fix needs upstream changes to bitbake (and unfortunately that probably means changing Yocto versions too, which is a major task), although I'm testing with FETCHCMD_wget = "/usr/bin/env wget -t 2 -T 30 --user-agent='bitbake/2.0'" in the meantime, which seems to work, for now. I believe the proper fix is that bitbake should fetch from static.crates.io instead of via the API, but my current version of bitbake doesn't do that.
I don't add new crates to my project very often, and we cache everything we download, so it's possible this change was weeks or even months ago, but I just want to confirm that it has changed recently, as this has never been an issue for us before.
EDIT: I'm aware of https://crates.io/data-access#api - found this after things stopped working.
Basically, the title. Do you use the constructor on your type (typically a "new" function) when fetching from the DB, or do you trust the DB's output to be valid?
Please help me choose. I'm inspired by the idea of creating my own Minecraft launcher and have started researching the whole topic. I like the performance of the Modrinth launcher and the design of XMCL, but I'd like to add a lot to both. Since I don't know any programming languages at all, I'd like the convenience of egui with it single-layer operation. I understand that I probably won't be able to create something similar to XMCL with egui, and I don't particularly like Tauri's three-layer approach (HTML-CSS-JavaScript). It seems like I should choose Slint, but I don't think it'll be much easier than egui.
The project has codename Pacquet. Its a rewrite to Rust after the fresh release of the v11. Don't expect it soon though. There is no clear schedule behind the rewrite. What's might be interesting the Rust version was abandoned for about 2 years and now the development has restarted
For those of you who might not know, PNPM is a notable game-changing package manager for Node.js. It stores dependencies once using hardlinks and doesn't download things twice when you start a new project with the same or similar structure. It would download newer versions of the packages if there are and the new ones. It's very space efficient and fast
With the latest Vite 8's Rust overwrite, it seems obvious that Rust has become the favorite language of the Webdev community and I'm curious what would be the next project to migrate
I've been working on a crate for a while called overflowing_int that acts as a wrapper around num-bigint to improve performance in cases where a program needs to deal with integers that are potentially too big to fit in primitive types, but where most actual data does fit. One example would be something like an interpreter for a Python-like language where the default integer type supports bigints, but most programs never actually use that feature.
This crate should serve as a drop-in replacement for num-bigint in most cases, offering a 3x-10x performance improvement in cases where primitive int types are sufficient to represent most actual values, at the cost of roughly a 2x overhead in cases where bigints are actually needed.
While there are a few methods of the original bigint types that necessarily have different signatures, I've worked hard to make the APIs as compatible as possible at the source code level. Suggestions for improvements are welcome!
I’m 16 and I’ve been working on Oxide-MC, an async engine core for Minecraft launchers. My goal was to create something ultra-lightweight for 4GB RAM devices and Tauri integration for individual launchers, for making launchers easy.
I want to acknowledge the sub rules: while I used LLMs to help with the initial boilerplate and complex JSON structs (Mojang's manifests are huge!, quicktype.io is amazing), the logic, system orchestration, and debugging were done by me.
Big news: Since my last (removed) post, a contributor (nicolube) joined the project via Discord! He just submitted a massive PR adding:
if'sI’m looking for technical feedback on the architecture as I plan to add NeoForge support next and more support to Tauri (percentages of downloads, etc...)
Links:
Crate I made, wanted to show it off / get some feedback:
I started work on this roughly two years ago, but had to stop multiple times due to lack of time. It's in a stable enough position where I'm proud of where its at.
If anyone has used winnow then its basically built on that, but ideally this can be used to help with encoding and decoding of these telemetry streams. Examples include SMPTE in broadcast, MISB in defense, could do ASN.1, and more. A lot of these are already implemented in various states, in fact, I was trying to implement various MISB formats at my previous job but was halted, but I am looking to work on this some more independently.
The best use-case IMO is personal IoT devices, making custom types and protocols to stream dense traffic with a lower footprint.
I also want to disclose: none of the core of this project was made using AI, however, documentation and tests were significantly helped with the use of AI agents. I was able to find and patch a couple bugs with the thorough amount of tests/examples it helped make. Both documentation and tests were then manually and thoroughly reviewed.
I tried to make the proc-macro as ergonomic as possible, but I am completely open to feedback!
Built a simple terminal-based snake game in Rust to practice ownership, structs, and game loops.
Features:
Would love feedback on code structure and performance!
Hello all, the Hurl team is thrilled to announce the release of Hurl 8.0.0!
Hurl is an Open Source command line tool that allow you to run and test HTTP requests with plain text. You can use it to get datas or to test HTTP APIs (JSON / GraphQL / SOAP) in a CI/CD pipeline.
A basic sample:
GET https://example.org/api/tests/4567 HTTP 200 [Asserts] jsonpath "$.status" == "RUNNING" # Check the status code jsonpath "$.tests" count == 25 # Check the number of items jsonpath "$.id" matches /\d{4}/ # Check the format of the id POST https://example.org/api/tests { "name": "foo" } HTTP 201 [Asserts] header "x-foo" contains "bar" certificate "Expire-Date" daysAfterNow > 15 ip == "2001:0db8:85a3:0000:0000:8a2e:0370:733" Under the hood, Hurl uses curl with Rust bindings (thanks to the awesome curl-rust crate). With curl as HTTP engine, Hurl is fast, reliable and HTTP/3 ready!
Documentation: https://hurl.dev
GitHub: https://github.com/Orange-OpenSource/hurl
--no-cookie-store option to test cookie-less workflowsIn Feb 2024, the JSONPath RFC (RFC 9535) standard was published, 17 years after Stefan Gössner wrote his influential blog post JSONPath – XPath for JSON that resulted in some 50 implementations in various languages (with, unfortunately, differences among them).
When the JSONPath was originally introduced in Hurl, no formal specification existed, the only reference was the original article from goessner.net, and we based our code on it.
With Hurl 8.0.0, the star of the show is our full RFC 9535 implementation!
You can now write more powerful queries such as $[?length(@.authors) >= 5] or $.store.book[?(@.category == 'fiction' && @.price >= 10)]
RFC 9535 also defines functions length, count, match, search and value:
GET http://localhost:8000/jsonpath/function HTTP 200 [Asserts] jsonpath "$.items[?length(@.name) > 3]" count == 2 jsonpath "$.items[?count(@.tags) == 1]" count == 3 jsonpath "$.items[?match(@.name, '^ca.*')].name" == "car" jsonpath "$.items[?search(@.name, 'ca')].name" == "car" jsonpath "$.items[?search(@.name, $.string)].name" == "car" jsonpath "$.items[?value(@.heavy) == true]" count == 2 Combining filters and booleans expression is now possible:
GET http://localhost:8000/json/store HTTP 200 [Asserts] jsonpath "$.store.book[?(@.published==true)].title" == "Moby Dick" # filter on published books jsonpath "$.store.book[?(@.category == 'fiction' && @.price >= 10)]" count == 2 # filter all fiction books with price >= 10 With this brand-new implementation, JSONPath results in Hurl have been standardized and aligned with other queries (like XPath).
JSONPath queries always return arrays, the Hurl [jsonpath] filter/query now maps the results as follows:
empty array → None value
jsonpath "$.store.book[5].title" not exists
single-element array → the element itself
jsonpath "$.store.book[1].title" == "Sword of Honour"
multiple elements → the full array of elements
jsonpath "$.store.book[0,2]" count == 2
Unfortunately, this new RFC 9535 support forces us to make breaking changes. While most of the existing JSONPath queries works without any modification in your Hurl files when upgrading to 8.0.0, you might have some changes to make.
Notably, '-' in keypath: it's not supported by the new spec and this kind of JSONPath
$.headers.X-Custom
must be rewritten as
$.headers['X-Custom']
For instance, before Hurl 8.0.0:
GET http://localhost:8000/json/store HTTP 200 [Asserts] jsonpath "$.not-exist" count == 5 jsonpath "$.not-exist" startsWith "foo" jsonpath "$.not-exist" endsWith "foo" With Hurl 8.0.0:
GET http://localhost:8000/json/store HTTP 200 [Asserts] jsonpath "$['not-exist']" count == 5 jsonpath "$['not-exist']" startsWith "foo" jsonpath "$['not-exist']" endsWith "foo" You can test the validity of your JSONPath expression with https://jsonpath.com, selecting RFC 9535.
Finally, our new JSONPath evaluation might also break existing tests written for previous versions.
For example:
jsonpath "$..book[5:7].title" count == 0
If there are only 4 books, this query now returns no value instead of an empty array. You will therefore get the following error:
error: Filter error --> /tmp/test.hurl:4:31 | | GET http://localhost:8000/books.json | ... 4 | jsonpath "$..book[5:7].title" count == 0 | ^^^^^ missing value to apply filter | You must fix the assertion as follows:
jsonpath "$..book[5:7].title" not exists
Because of the potential breaking changes, we're trying to contact public repos on GitHub that are using Hurl when we detect that they may have some changes to make for Hurl 8.0.0. Usually the changes are simple so this should not be a big issue. In exchange, we hope that the new RFC 9535 will give you some useful new test capabilities.
Not specifically tied to this new 8.0.0 version, but Hurl is now an official language on GitHub!
You can search for Hurl snippets, tepo top languages shows Hurl support and Hurl code is syntactically colored.
Thanks to Niklas Mollenhauer and all other people that have made this possible, you rock!
Hurl options can be used in command line like --location to follow redirection, and overridden per request in [Options] section. For instance, this Hurl file:
GET https://example.org HTTP 301 GET https://example.org [Options] location: true HTTP 200 will follow a redirection only for the second entry.
With Hurl 8.0.0, most of the options can also be defined with environment variables (like HURL_INSECURE for --insecure ). So, in order to configure Hurl, there are three sources from the lowest priority (most easily overridden) to highest (overrides all others):
HURL_INSECURE)--insecure)insecure: true in file)You can check the Hurl manual to see all the configurable environment variables, there are plenty (i.e. HURL_COMPRESSED, HURL_CONNECT_TIMEOUT, HURL_HEADER, HURL_HTTP3 etc...)
By default, requests in the same Hurl file share cookie storage. A new option --no-cookie-store deactivates cookie engine allowing you to test cookie-less workflows. And you can configure it by environment variable with export HURL_NO_COOKIE_STORE=1.
Certificate queries allow you to assert and capture TLS/SSL certificates attributes like: subject, issue, start date, expire date and serial number. With Hurl 8.0.0, you can now get subject alternative name and certificate value.
GET https://example.org HTTP 200 [Asserts] certificate "Subject" == "CN=example.org" certificate "Issuer" == "C=US, O=Let's Encrypt, CN=R3" certificate "Expire-Date" daysAfterNow > 15 certificate "Serial-Number" matches "[0-9af]+" certificate "Subject-Alt-Name" contains "DNS:example.org" certificate "Subject-Alt-Name" split "," count == 2 certificate "Value" startsWith "-----BEGIN CERTIFICATE-----" Making a JSON body request in Hurl is super simple, you just have to write a JSON body without any modification and it will be sent as is, with the right application/json Content-Type header. With this body, templates are also supported, in order to set variations on your requests.
POST https://example.org/api/cats { "id": 42, "name": "{{ name }}" } {{name}} is evaluated as a template and the file will fail if there is no name variable.
With Hurl 8.0.0, you can disable variable rendering and send {{ foo }} as it is, without Hurl trying to render it with a variable. Using [multiline string body] and raw identifier you can send an unmodified body over the wire.
POST https://example.org/api/cats Content-Type: application/json ```raw { "id": 42, "name": "{{ name }}" } Without the raw identifier, the body will be a classic multiline body and will render every variable.
HTTP body responses can be encoded by server but captures and asserts in Hurl files are not affected by the content compression. In Hurl, captures and asserts work automatically on the decompressed response body, as if there weren’t any compression.
Unlike bytes query, the new rawbytes query returns the raw bytes before any content decoding. For uncompressed responses, rawbytes and bytes return the same data.
GET https://example.org/data.bin HTTP 200 Content-Encoding: gzip [Asserts] header "Content-Length" == "32" rawbytes count == 32 # matches Content-Length (compressed size) bytes count == 100 # decompressed size is larger rawbytes startsWith hex,1f8b; # gzip magic bytes bytes startsWith hex,48656c6c6f; # decompressed content starts with "Hello" That's all for today!
There are a lot of other improvements with Hurl 8.0.0 and also a lot of bug fixes, you can check the complete list of enhancements and bug fixes in our release note.
We'll be happy to hear from you, either for enhancement requests or for sharing your success story using Hurl!
New week, new Rust! What are you folks up to? Answer here or over at rust-users!
Mystified about strings? Borrow checker has you in a headlock? Seek help here! There are no stupid questions, only docs that haven't been written yet. Please note that if you include code examples to e.g. show a compiler error or surprising result, linking a playground with the code will improve your chances of getting help quickly.
If you have a StackOverflow account, consider asking it there instead! StackOverflow shows up much higher in search results, so ahaving your question there also helps future Rust users (be sure to give it the "Rust" tag for maximum visibility). Note that this site is very interested in question quality. I've been asked to read a RFC I authored once. If you want your code reviewed or review other's code, there's a codereview stackexchange, too. If you need to test your code, maybe the Rust playground is for you.
Here are some other venues where help may be found:
/r/learnrust is a subreddit to share your questions and epiphanies learning Rust programming.
The official Rust user forums: https://users.rust-lang.org/.
The official Rust Programming Language Discord: https://discord.gg/rust-lang
The unofficial Rust community Discord: https://bit.ly/rust-community
Also check out last week's thread with many good questions and answers. And if you believe your question to be either very complex or worthy of larger dissemination, feel free to create a text post.
Also if you want to be mentored by experienced Rustaceans, tell us the area of expertise that you seek. Finally, if you are looking for Rust jobs, the most recent thread is here.
Hey r/rust,
I'm working on a Rust codebase that needs an audit trail for compliance. Every mutation of an auditable entity has to produce an audit log entry in the same database transaction as the business write. The existing setup is an AuditService that gets called as a best-effort side-effect after the DB write, and it has two problems:
The idea I'm exploring is to lean hard on the type system and borrow checker to make writes without audit a compiler error. The rough sketch is:
Model implements an Auditable trait (entity kind, sensitive fields, diff exclusions) — mostly via a derive macro.InsertPermit, UpdatePermit, DeletePermit.AuditScope handed out inside AuditTransaction::run_and_commit(|scope| async move { ... }). The permit holds &DatabaseTransaction and &AuditContext, so the audit row necessarily lands in the same txn as the write.Here's roughly what the permit looks like:
rust
pub struct InsertPermit<'a> { txn: &'a DatabaseTransaction, ctx: &'a AuditContext, } impl<'a> InsertPermit<'a> { pub async fn insert<A: ActiveModelTrait>( self, model: A, ) -> Result<<A::Entity as EntityTrait>::Model, AppError> where <A::Entity as EntityTrait>::Model: Auditable, { let inserted = model.insert(self.txn).await?; let entry = AuditLogCreate { entity_id: inserted.audit_id(), entity_kind: inserted.audit_kind(), actor_id: self.ctx.actor_id, org_id: self.ctx.org_id, action: AuditAction::Create, snapshot: serde_json::to_value(&inserted)?, }; AuditLogRepository::insert_in_txn(self.txn, entry).await?; Ok(inserted) } } And usage at the service layer:
rust
pub async fn create_organization( audit: &AuditService, ctx: &AuditContext, params: CreateOrganizationParams, ) -> Result<organizations::Model, AppError> { let atx = audit.begin(ctx.clone()).await?; atx.run_and_commit(|scope| async move { let data = OrganizationCreate { name: params.name, /* ... */ }; OrganizationRepository::insert(scope.insert_permit(), data).await }).await } // Repository: impl OrganizationRepository { pub async fn insert( permit: InsertPermit<'_>, data: OrganizationCreate, ) -> Result<organizations::Model, AppError> { let active = organizations::ActiveModel { id: Set(Uuid::new_v4()), name: Set(data.name), ..Default::default() }; permit.insert(active).await // permit consumed here } } Calling OrganizationRepository::insert without a permit doesn't compile. Trying to use the same permit twice doesn't compile. The audit row and the business row share self.txn, so they commit or roll back together.
I'd appreciate feedback on:
For Windows apps that need to run without GPU (VMs / low-end machines), which Rust UI frameworks would you recommend?
I used it a while ago, but I can't remember the name. It would show you the rustc error messages in vim as you made them. It runs under Plug.
Looking for advice for tiktok/youtube shorts to help grow my channels. Also think it could help other game devs to share some advice. I just started posting. Anything would help. Thank you in advance.
| It makes it look as if parts of Yoshi's sprite morph into other parts of the vehicle sprite. Ive seen a similar effect sometimes used in vector images (where oneshape of color in one image is morphed into another shape of the same color in the other image) but the one in Yoshi's Island doesn't seem to be doing that, only giving the appe of doing so (but i may be wrong). Does anyone know the name of either? Or how to recreate it?? [link] [comments] |
Been working on a small idle game where ducks spawn into a pool and quickly spiral out of control.
Trying to make the growth feel really satisfying. Would love feedback.
Steam page if anyone wants to check it out: https://store.steampowered.com/app/4485920/ClickADuck/
Doing research and want to know what analytics tool you use for your game and what annoys you the most about it
Tool + biggest like and dislike?
Hello everyone!
I have what I’m hoping is a really simple question for devs who have released a game and received a payment before.
I received my sales report a few days ago, but the payment history section is completely empty. I haven’t received any emails from steam yet, and I also haven’t received any deposits yet. I definitely made enough to receive a payment, I’ve also confirmed my banking information.
Should I be concerned, or is it normal to get the report before the payment is submitted?
Edit: my phone changed steam to steak and I didn’t notice…. No clue how to change the title lol
First of all, I've always admired coding and wished to do it myself. I have some basic knowledge in Scratch and basically the bare minimum in Roblox Studio (LUA). I thought of ideas that aren't even games I guess you could say. I'm really interested in coding rules that NPCS/AI can follow. Just experiments to entertain myself and possibly release it on the internet. I was wondering what software or overall, HOW I would code scenarios such as these examples down here:
- a team of blocks or rectangles that have guns and decide if they want to kill each other
- rectangles that act as police while other rectangles act as criminals, and it's some big police chase around a map
- russian roulette entirely with AI
- Trolley problem but reimagined
-you probably get the idea
I just want to code little AI characters that randomly choose between options I give them and create scenarios. I appreciate if you recommend any software. Thank you for reading.
Should I choose Unity or Godot, or something else?
I have decent programming experience but zero game dev background. Visual scripting would be a big plus for me. The jam is happening AFTER the 3 days prep, the actual jam is 2 weeks long.
Also, I know my way around Blender but I'm not really a 3D artist. Any tips on how to handle the art side without much experience? Do people just use asset packs? I've also seen people use a modeling workflow where they generate with tripo then clean up in Blender, would that work for a beginner like me? Or is there a smarter workflow? (Collaborating with a 3D artist is a bit pricey so I'm skipping that for now)
Hey guys !
Me (AAA Environment Artist with 4 years exp) and a friend (AAA Character Artist with 4 years exp) we want to do our own indie game in part time.
We are reading and watching a lot of discussions and videos about genre and theme and we would like to have your ideas on what type of genre we should focus (based on our strengths)
We are using UE5 and we have no issue creating realistic or stylized Environment and characters from concept to in the engine with optimizations. The issue is we have no skills in animations, blueprints, music, UI, UX, VFX and 2D drawing.
We want to learn blueprint using Udemy (Stephen Ulibarri blueprint course) before diving into the real project.
We are interested by Simulator/Job Simulator like Cash Cleaner, Tavern Simulator, Lawn Mowing Simulator, etc
Or a "small management game" like Tiny Book Shop or Minami Lane
We don't want to do a 3 years game so we are aiming for a smaller scope game if that even make sense 😅
Any thoughts of advices for us ?
Thank everyone !
Just trying to get a sense of what other devs are doing. I'm part of a 3-person team making board game apps (2 devs, 1 designer).
Our approach has changed several times over the years, from tracking simple tasks in a spreadsheet to more seriously tracking things in Airtable/Asana.
Recently though we've been using an overview of the app architecture in Figma and visually marking the status of things there for design and dev work. For other tasks (business, marketing, launch, etc.) we use Airtable.
Do you use any specific method or framework when doing game design?
For example, sometimes I design something, but when I think about it again the next day, I realize there is a flaw, something missing, or that a mechanic doesn’t really serve any purpose.
I’m wondering if the problem is that I’m not creative enough, or if I’m just thinking about game design in the wrong way.
If you use any techniques, methods, or workflows that help you design better mechanics, I’d really appreciate it if you could share them.
I'm in the midst of prototyping my game, which is a multiplayer rouglite where weapons are procedurally generated down the the attacks within it's moveset, each a composition of pieces that go into what an "attack" is.
I am very pleased with my progress so far, and very pleased at some of the cool stuff that has popped out of my system already. Sword spawned with controls of flappy bird as you swing your weapon, it can generate a double ended pole arm with various combinations of pieces of scythes/glaives/spear tips on each end, each segment of a weapon contains it's own hitbox, etc. I am going to eventually begin the projectile/ranged portion of this where a trigger grip can form either firearms or crossbows, or other.
Managing this a solo dev is tough but very rewarding and exciting. And before I add in real depth to the controls and fine tuned timing of certain things, I wanted to try again at finding and exploring other similar examples of this that already exist. More specifically, I want to see the code architecture and structural decisions for such systems. Getting this part wrong can result in untold amounts of refactoring later down the line at each step of implementing some new content.
My own search results have turned up either missing in the crucial code architecture part, or are a much simpler system of singular weapon types that can't connect/interact with other types (i.e. proc gen guns and only guns).
My main goal with this search is to ensure my own code isn't going to bite my ass when I least expect it. (I've already done more than 2 system wide refactors of this within 1 month).
Are there any materials either video format or long read form on this kind of topic? Preferably on the more technical side, but I'll accept any reference really.
Hi. I just finished a game and it did pretty well on Steam. I've been contacted by a bunch of porting companies to bring the game to consoles. I would love to see the game on consoles, but the prices I'm being quoted look totally crazy to me.
The game is single player only, controller supported already, (UI and icons) made in unreal, kid friendly, no special plugins or engine adjustments.
Is it a straightforward process and I'm being fleeced out here? Or is the cost of this service actually really high?
Please let me know your experience.
Hi, my game demo is out and i want to contact content developers and streamers. I wanted to ask, i have an email with (mystudioname@gmail). I used that email for all my major game dev stuff, so its basically my business email. Is it okay if i use it to contact streamers/content creators or does it need to be a company email?
Hi everyone,
I spent most of the last year designing Imprinted. A game that takes place entirely inside a "fake" operating system, and the weirdest part was realizing there was no good way to even describe it on Steam.
There are so many games like this: Her Story, Hypnospace Outlaw, SIMULACRA, The Roottrees etc. But no good way to tag them and make sure they show up as "similar games" on Steam.
So I started reaching out to a few other devs working on similar things, mostly just to sanity check if this bothered anyone else. Turns out that it did.
That small group somehow turned into 150+ developers over the bext 4 months. No publisher or other big organisation behind it, just a lot of devs going “yeah, this is dumb, let’s fix it.” (And some volunteering a TON of their own time to make this happen).
We ended up borrowing an idea from the community push that got “Dwarf” recognized as a Steam tag a while back. Basically, if enough people tag enough games at the same time, it becomes hard for Steam to ignore. So I built a small web tool that helps people tag our games with "Fake OS": Tag Helper | InterfaceX26 (and of course we also tag other games that fit the tag well)
Now it’s turned into this whole thing we ultimately called InterfaceX26. There’s a sale running from today and a showcase on May 2 with a bunch of upcoming games.
Hopefully, we have an actual “Fake OS” tag that sticks at the end.
In case you are wondering what it takes to coordinate something like this or the Fake OS genre itself, you can ask me anything 😄
Tl;dr: Spent a year making a “Fake OS” game and realized the genre basically doesn’t exist on Steam as a tag. Reached out to a few devs, which somehow turned into 150+ of us teaming up to push for it to become official.
Proud to say I got my background music for my game for all levels, main menu and even the credits menu along with the licence certificate for each song. I done this through pixabay and will credit user as well as pixabay. All of this was done freely too.
I am now moving onto the Sound FX it's self. I'm stuck in two minds to try make them myself just for some fun and see what I can do there or just pixabay again while keeping the pixabay licence summary for fx too. If I use pixabay again the chances upon releasing the game might be quicker but it just depends if they haver the right sounds if not chances are high looking somewhere else for sound fx for free or making them myself which is something I have never done before but I believe it would be quicker using some free of use and credit user etc.
Should I make my own or try find what I need first, if not then try making my own ?
P.S, unsure on the tag to put it as so left it as discussion sorry all!
Hey indie devs,
I recently launched my first game on Steam, Satori, and one thing I wasn’t really prepared for was the amount of messages asking for Steam keys.
Some of them are from curators, some look genuine, and some honestly feel like copy/paste spam. As a first-time Steam dev, I expected a few requests, but I didn’t realize how quickly they would start coming in after launch.
I’m not trying to call anyone out, it’s just been an interesting part of the launch process that I didn’t know much about before publishing.
Steam page for context:
https://store.steampowered.com/app/4595670/Satori
For other devs who have launched on Steam, how do you usually handle key requests? Do you reply to most of them, ignore the obvious spam, or have a system for filtering them?
I have a very creative and intelligent 9 year old AuDHD son whose special interest is video games. He likes to build/create levels in games like Geometry Dash and has been asking for more places to build his own games for a while now. He says he wants to be a game designer when he grows up. I don’t play any games and I’m at a complete loss of what is or isn’t a good course to sign him up for or software to get him. I’ve googled and found some stuff but again, no idea what’s worth the money. I’m basically technologically illiterate (lol). Any help is appreciated. TY!
| Hi everyone! I'm organizing the second OinkJam which starts in 3 days. Game jams are a great way to commit to a project, meet other devs, and receive feedback! I would love if you guys could check it out : ) Please let me know if you have any questions! Dates: April 30 - May 14 Prizes: Our prize pool is made up of $3,000+ in sponsored prizes including Aseprite licenses, board games, and site domains! Themes: You can choose between two themes to incorporate into your game! They are suggested and voted on by participants through the Discord server. [link] [comments] |
I just get inspired to do this or that and I literally have four-five projects running at any given time. Currently four, but it's because I've finally decided to kill one of them. And honestly, I enjoy it this way.
I have seen indie publishers use itch.io to promote their games, is this the only option or is there an alternative to use?
A Chinese publisher just reached out to us. Looking for some advice...
Launched our Demo and our game is getting quite a bit of traction in China organically. We already paid for Simplified Chinese localization (and will do so for the full game). A Chinese publisher has now reached out wanting a deal.
Question:
Our current thinking is that, if the game is getting organic traction from China already, we might be able to increase this with more time and effort, maybe paying someone to help us with China "marketing" (we paid for localization already, so maybe just having a Chinese native speaker helping out with promotion, outreach, etc.).
Or what are we overlooking that a Chinese publisher could bring that would justify taking a huge cut of the Chinese revenue?
Our main concern is that, let's assume the game grows more organically in China, Steam sales are 100% ours regardless. So would it be worth giving up let's say 20-50%(depending on how low they go) on the Steam sales for getting what? A few sales in non-Steam stores?
Anyone here can share some numbers or insights?
Or any not-Steam / Steam ratio Sales in China?
Thanks!
The problem with immersion in (especially horror) games is that it is immediately broken when fundamental video game features like respawning and saving and loading are used and I would like to know how we can keep the immersion despite their inevitable use.
In horror games, the main threat is being killed by the monster. The threat of getting jump scared or watching their character getting torn apart or eaten or stabbed to death is the player's motivation to play smarter and make safe decisions ON THE FIRST LIFE ONLY. I believe this is true only for the first life because they are fully immersed by this point. After the player inevitably dies, their motivation for not dying in their subsequent lives is that they don't want to waste their real-life time by having to replay these sections over and over again. The monster is no longer scary because their frustration with the game itself now trumps the Xenomorph hunting them down.
How can we punish the player for their mistakes without forcing them through repetition and wasting their valuable time?
Games that are not horror do not have this problem:
Outside of strapping the player to an electric chair, I can't think of anything else. Are jump scares the only downside to dying (outside of restarting) that you are truly afraid of? Yes, horror games can still be scary despite this problem, but they are still limited by it. You aren't afraid of deaths in horror games, you're afraid of getting startled when you die. Once you've gone through that multiple times, you get numb to that shock, and it just becomes annoying. When the player is in a situation and they are faced with death, they aren't afraid of their character perishing. They are afraid that the past 10 to 60 minutes of hard work will soon be wasted.
Hopefully, that was coherent. We cannot truly recreate the fear of death within a video game, so what can we do to make the player actually afraid of failure and their mistakes in horror games?
I’m extremely against the use of AI in game development, I will never use AI to create ideas, code, or anything else in my game. I don’t like generative AI.
The other day, I was talking to my brothers, one of them is taking a game dev class, and, he was telling me that if I want to do anything in game dev, I’m going to need AI. He said I’d especially need AI for coding if I want to make it anywhere, especially if I want to not have to actually make the code.
But, if I don’t want to take the time to make code, why would I make it at all? Why would I get an AI to do it for me? What’s the point in that? It’s like getting some random guy to do all of your work for you, why even bother at that point?
Game development and game design are my passions, I love it, it’s one of my favorite things ever. And I don’t wanna use AI for it, I want to do it by hand.
So, I’ll ask now, is it true? Is he correct? Will I need to use AI if I want to make it anywhere? I don’t want it to be that way, that sounds awful. I know I CAN do it myself, but will doing it myself rather than using AI end up hurting me in the long run?
Sorry for the long text. This got sorta vent-y. I also don’t really know what flair to use, so I picked discussion.
EDIT: I guess I should specify, I’m not too concerned about being left in the dust. I don’t exactly have competition. I’m really just doing this for me.
EDIT 2: I guess I can see why some people like to use AI. And if you do, that’s okay, it’s your game, your choice. However, I don’t agree, much less like the sentiment that you won’t make it anywhere without AI. I understand it can be helpful, that it can speed up the process, but it’s also not 100% trustworthy, and it’s DEFINITELY not 100% necessary. You can do just fine without AI. Team cherry doesn’t use AI, Yacht Club doesn’t use AI, Toby Fox doesn’t use AI, those are all indie. Nintendo doesn’t, Capcom doesn’t. Efficiency is good, but speed is NOT the same as efficiency. Just because it’s faster doesn’t mean it’s better. Especially because I’m in this for myself, not anything else.
So, in conclusion, I’ve settled on my verdict. I will not be using AI. It‘s poisonous, can only mimic human thought processes, and often gets stuff wrong. This is my project, not anyone else’s. If I get left behind, then okay, because I’m in this for the myself. Besides, even then, it’s not guaranteed that it won’t be successful. Team Cherry is comprised of three people, didn’t use AI, their games took a famously long time to come out, and yet they were still very successful.
| Slowly adding more and more features to this baby - have a few open issues, and just merged the first contributor PR (a syntax highlighting plugin - though typically plugins should be their own github repo, this one felt like it should belong in the shipped plugins). I come to r/golang again asking the community to give Foundry another try, it's a little more mature now, and just shy of 200 stars, so it does have some traction. Looking forward to more of you trying it out, and giving feedback, or coming on as contributors :D PS, if you want to keep your own plugin but make it known, just add it to: https://github.com/sphireinc/Foundry/blob/main/Plugins-Marketplace.md [link] [comments] |
| submitted by /u/NikolaySivko [link] [comments] |
This is the weekly thread for Small Projects.
The point of this thread is to have looser posting standards than the main board. As such, projects are pretty much only removed from here by the mods for being completely unrelated to Go. However, Reddit often labels posts full of links as being spam, even when they are perfectly sensible things like links to projects, godocs, and an example. r/golang mods are not the ones removing things from this thread and we will allow them as we see the removals.
Please also avoid posts like "why", "we've got a dozen of those", "that looks like AI slop", etc. This the place to put any project people feel like sharing without worrying about those criteria.
im making a 2d multiplayer ascii game from scratch in golang , i need to saperate the two apps ( server and client ) while also making them share some packages , how can i go about structuring that file structure and moduling wise ?
i can't have them share the same go.mod because then i wouldn't be able to make 2 saperate main.go files with their own packages , i want each to have their own packages while also sharing some packages ?
| Hi gophers, Over the last year I've been building (in my spare time) a cross platform FUSE filesystem that also has a GUI. This was inspired by croc, rclone, and the huge amount of pain I had 2-3 years ago working on a similar project. What it does? Sends file from Alice to Bob, or lets them browse the files in real time, and open them in any app from their system via a FUSE mount. Go specific fun things. It uses the Now people can stream files between them. Like add files, download files. But that is not that fun, so why not offer the full Dropbox experience? So from start we went with let's do FUSE cross platform. And we did here: and the pain is real, on linux fusermount3 all good. Just lets try to make git clone work. Then macFUSE and apple doubles, xtended attributes pain, pain, pain. And then WinFSP for Windows, which is not that much pain as Mac, so I cannot complain. But jeez louise, once you add this sync for both peers, over a real network with around 15ms RTT, or even on the same loopback, all the pesky race conditions, the hangs, become very very very obvious. Like it took me and my brother, and since November Claude real work to make git clone work inside a FUSE peer, then be synced lazily on the other peer without corruption, and git checkout and commits to work (with an asterix, if one peer does too many git checkouts, the other peer might not get the files). Oh, and also you can stream movies between peers, like one peer has a 10GB video, and the other peer should see it instantly, and on opening it via QuickTime, or w/e mp4 player, should get streamed on demand, while in the background it gets downloaded, or requests with offset chunks. Similar to any streaming service. I did setup some real world benchmarks and compared with other tools, managed to get around 42MB/s on my 500Mbs line on a 15 ms RTT. And on loopback fine grained to see max speeds, but the bottleneck in this setup is the FUSE filesystem overhead, then the gRPC with my encrypted connection. Here is the 1 page "product" with screenshots: keibidrop.com And the github link for the MPL2.0 project: https://github.com/KeibiSoft/KeibiDrop with the note that the rust part and branding, UI (using slint.dev is proprietary). I hope you all like it, and yes. There are still bugs. As of today it's on version v.0.1.1, and It Just Works TM. But there is friction on using it, it's not the friendliest UX. [link] [comments] |
I wrote a blog post about making a TCP server in Go using raw syscalls and kqueue. It’s just a single goroutine doing non-blocking I/O, which is basically just a fancy way of saying I avoided the standard library to make it harder for myself.
I didn't use any frameworks or even the net package. Just me, some file descriptors, and a lot of frustration.
If you’re the kind of person who geeks out on low-level stuff, here it is: medium article
I have a query that's designed to filter by year and group by month; within the query, it's doing:
date_part('year', s.occurred_at) = $1 but when sqlc generates the go code for this, the signature is
func (q *Queries) GetSEventMonthSummary( ctx context.Context, occurredAt pgtype.Timestamp) ([]GetSEventMonthSummaryRow, error) { In particular, it's identifying the occurredAt column as a timestamp and making the query param type the same. But since the comparison is actually on a date_part(...), this parameter should be a numeric type. Even if I supply it with a timestamp, it won't work correctly:
unable to encode pgtype.Timestamp{ Time:time.Date(2024, time.January, 1, 0, 0, 0, 0, time.UTC), InfinityModifier:0, Valid:true} into binary format for float8 Is there a way to override this to tell it that it should be expecting a number, not a timestamp?
Good morning guys,
So I spent about a year in golang it was my first serious language that I studied and tried and really wanted to master.
I never felt like I could identify how to build a program with it? it didnt feel object oriented. It didnt feel like functional. my programs I built were for orchrestrating a Oracle -> Postgres + running sql procedures to orchrestrate a datawarehouse
and I made a web server to run internal reporting websites.
Never in that language did I feel like the language starting unlocking this giant productivity boost. In C# I feel like Generics I spent a moment building myself this tool that I can save myself so much work on.
In C# I had rich domain types that help me map out my actual business and it felt like every day I program I unmapped the fog of my company.
In C# it felt like it wanted to help me solve something bigger then itself and I am building the toolkit.
but in golang. I solve the problem It felt like alot of code, it felt like ugly syntax. It felt like because I solved a problem and not a domain the interfaces I dont see how that helped me.
are my problems not big enough for golang? am In the wrong domain,
I want to love golang so badly. But man am I burnt from it and upset with myself for not getting it after a year.
"Simple language" yet I feel like a giant idiot.
If you guys can help me see something I'm missing that is this productivity multiplier people are talking about please show me.
my fear is people feel productive compared to C++ and from a system programming perspective it is productive.
is the right take away that Go is productive for infrastructure and I/O heavy services, and C# is productive for domain-rich business logic and I have been using the wrong tool for the job?
| Built a simple terminal-based snake game in Rust to practice ownership, structs, and game loops. Features:
Would love feedback on code structure and performance! [link] [comments] |