Допустим, вы разработчик, и вам от пользователя приходит строка user-agent с описанием того, каким браузером он пользуется.
В этой строке будет что-то типа такого:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
И вы хотите из неё узнать мажорную версию Chrome, то есть вытащить число 51. Что вы сделаете? Можно, конечно, написать свой парсер, но я уверен, многие воспользуются регулярными выражениями. Я бы воспользовался. Какое выражение сюда подходит? С виду кажется, что вот такое:
/Chrome\/(\d\d)\./g
Мы ищем слово Chrome и слэш, затем ловим в группу две цифры, после которых стоит точка. Так?
По крайней мере, мышление достаточного количества разработчиков именно таково. Зачастую программистам не хватает умения отойти от техзадания на уровень вещественной сути того, с чем они работают. На самом деле число 51 это версия. Версия будет увеличиваться со временем. «Марти, где твоё четырёхмерное воображение?» Если уже прошло 50 версий, то и следующие 50 не за горами, число станет трёхзначным, регулярка или парсер, сделанные под двухзначные числа, перестанут работать.
Трехзначная версия Chrome и Firefox приближается уже сейчас. И да, в них падает куча функций на сайтах, включая крупные корпорации: Yahoo, Bethesda, HBO и бог знает сколько сайтов поменьше. Чисто из-за цифры. Это уже назвали «Проблема сотой версии» по аналогии с «Проблемой 2000 года» (программисты записывали год двумя цифрами, 2000 стал неотличим от 1900).
К чему это я? Полезно задумываться о физическом воплощении того, что вы представляете в своей программе. Ваш код должен описывать не столько требования заказчика, сколько законы, по которым существует этот объект в реальном мире.
#dev
🏭Bali reduces dependence on Java: the island will build its own power plants
📰 Bali is on the verge of energy independence: the authorities are launching several projects to build their own power plants. Gas stations in Denpasar and Gianyar, as well as two new units on the north coast, will provide the island with 1.5 GW of power by 2029.
ℹ️ This will make it possible to abandon vulnerable underwater cables from Java and eliminate the risk of large-scale blackouts. Residents are being urged to support the initiative by installing solar panels and switching to renewable energy sources.
#development@BaliNews
📰The popular Android developer, Xaxtix, parted ways with Telegram.
In the release of the latest versions of Telegram Android, we find that Ilya Samorodov is no longer active in the development of Telegram.
Read more on iDubTG
#Development
👉The TG Times
🔖 On Long Term Software Development - Bert Hubert's writings #pinboard#development
https://berthub.eu/articles/posts/on-long-term-software-development/
🎰Bali governor rejects casino construction despite promised 100 trillion rupiah
📰 Bali Governor Wayan Koster has stated that he rejects the proposal to create a legalized casino, even despite the potential profit of 100 trillion rupiah.
🛕 According to him, the refusal is dictated by the principles of cultural tourism development, on which the island's economy is based.
🤔 At the same time, according to some analysts, the location of casinos in new areas, for example, near the northern airport under construction, could accelerate the development of these territories. And if it later turns out that casinos really do interfere with cultural tourism, they can always be closed.
#places#development@BaliNews
🌊Bali will build a kilometer-long promenade from Changgu to Cemagi
📰 A kilometer-long promenade will appear along the coast between Canggu and Cemagi by 2026. It will rehabilitate the eroded shoreline, create a wide pedestrian path and recreational areas.
📍 The cultural center will be the area near the Batu Ngaus temple, where a stage for kechak dances is planned. Traders will be distributed among the new pavilions to make the beaches convenient for both visitors and entrepreneurs.
#places#development@BaliNews
🏭The largest battery production project in Indonesia has begun
📰 Contemporary Amperex Technology Co. Limited (CATL), the world's largest manufacturer of batteries for electric vehicles, has begun a large-scale project in Indonesia to create production facilities and an ecosystem related to the production of electric vehicles.
🧲 The investment is estimated at $6 billion.
ℹ️ According to Indonesian Minister of Energy and Mineral Resources Bahliola Lahadalia, this is the first project of its kind and scale in the world. The launch of electric vehicle battery production is one of 18 large-scale industrial projects planned for implementation in Indonesia in the coming years. Together, they are estimated to be worth nearly $45 billion.
The projects will be implemented in the areas of nickel and bauxite production, as well as gasification, oil refining, and the creation of oil storage facilities. Some of the initiatives will affect fishing, agriculture, and the forestry industry.
#business#development@BaliNews
http://astrocodeschool.com/
Astro Code School is respected by tech firms and universities for a reason: we’re founded and staffed by a leading #web#development firm, Caktus Group. Our team interacts daily with the inner workings of Caktus so we see the trends and best practices that will make you job ready. If you’re prepared to launch a new career with the real-world technical depth employers seek, Astro is right for you.
Errors in Go:
From denial to acceptance
Learn how to stop worrying and love error handling in Go. Author of Overmind and imgproxy describes his journey through all five stages of Kübler-Ross model—from denial to acceptance—as he went deeper into the language, and shares his favorite patterns for dealing with errors in Go code.
#development#language
https://evilmartians.com/chronicles/errors-in-go-from-denial-to-acceptance
Ok, I’m online again so Happy New Year for everyone 🎈
The first article that I want to share this year is about channels design in GoLang, their structure and internal operations. Enjoy the reading!
#development#language
https://codeburst.io/diving-deep-into-the-golang-channels-549fd4ed21a8
Hello, there! One GoLang feature proposal about immutability is here 🙂
It’s a really interesting idea with pros and cons inside, it has a good explanation, use cases and examples for the following proposed changes: fields, arguments, variables, return values, methods reference types (Pointers, slices, maps, channels). This approach merits attention if you are interested in paths of GoLang development, so, have a good reading! 😉
#language#development
https://github.com/romshark/Go-1-2-Proposal---Immutability
“Should I Rust, or Should I Go” - this is an article with a quick comparison of Golang and Rust code styles, features and conveniences of usage.
#language#development
https://codeburst.io/should-i-rust-or-should-i-go-59a298e00ea9
Good day 👋 I would like to share following 7 advices in short article by Kartik Khare how to increase your code quality in GoLang. Of course, before using it you should understand reasons for each advice in the post. As example Kartik writes:
#6 Use int as keys instead of strings in Map.
It’s a good way but here we can get optimization for optimization 🤔
#development#language
https://codeburst.io/how-to-optimise-your-go-code-c6b27d4f1452