# maps

Published articles for maps.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## GNOME 51 released

DevFeed: [GNOME 51 released](<https://devfeed.tech/articles/gnome-51-released-41294.md>)

Original publisher: [Read original article](<https://lwn.net/Articles/1094963/>)

Author: corbet

Published: 2026-09-17T13:08:12Z

Content type: release

Language: en

Sources: [LWN.net](<https://devfeed.tech/sources/lwn-net.md>)

Topics: [version](<https://devfeed.tech/topics/version.md>), [App](<https://devfeed.tech/topics/app.md>), [data](<https://devfeed.tech/topics/data.md>), [interface](<https://devfeed.tech/topics/interface.md>), [file](<https://devfeed.tech/topics/file.md>)

Tags: [application](<https://devfeed.tech/tags/application.md>), [changes](<https://devfeed.tech/tags/changes.md>), [data](<https://devfeed.tech/tags/data.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [file](<https://devfeed.tech/tags/file.md>), [gnome](<https://devfeed.tech/tags/gnome.md>), [gnome-51](<https://devfeed.tech/tags/gnome-51.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [interface](<https://devfeed.tech/tags/interface.md>), [maps](<https://devfeed.tech/tags/maps.md>), [offline](<https://devfeed.tech/tags/offline.md>), [performance](<https://devfeed.tech/tags/performance.md>), [transit](<https://devfeed.tech/tags/transit.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

GNOME 51 has been released with performance improvements, offline data and improved transit information in Maps, a new file previewer interface, and other changes.

### Source excerpt

Version 51 of the GNOME desktop environment has been released. The list of changes includes a number of performance improvements, offline data and better transit information in the Maps application, a new interface for the file previewer, and more.

## TBM 434: How Maps Can Hide Problems

DevFeed: [TBM 434: How Maps Can Hide Problems](<https://devfeed.tech/articles/tbm-434-how-maps-can-hide-problems-40060.md>)

Original publisher: [Read original article](<https://cutlefish.substack.com/p/tbm-434-how-maps-can-hide-problems>)

Author: John Cutler

Published: 2026-08-01T09:13:07Z

Content type: opinion

Language: en

Sources: [The Beautiful Mess](<https://devfeed.tech/sources/the-beautiful-mess.md>)

Topics: [context](<https://devfeed.tech/topics/context.md>), [structure](<https://devfeed.tech/topics/structure.md>)

Tags: [design](<https://devfeed.tech/tags/design.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [maps](<https://devfeed.tech/tags/maps.md>), [organizations](<https://devfeed.tech/tags/organizations.md>), [ownership](<https://devfeed.tech/tags/ownership.md>), [problems](<https://devfeed.tech/tags/problems.md>), [product](<https://devfeed.tech/tags/product.md>), [reporting](<https://devfeed.tech/tags/reporting.md>), [silos](<https://devfeed.tech/tags/silos.md>), [structure](<https://devfeed.tech/tags/structure.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

The article argues that organizational maps can conceal incoherence when strategy, structure, technology, incentives, goals, ownership, teams, and funding do not align. It contrasts coherent organizations, where context transfers across map layers, with incoherent organizations, where people must repeatedly reorient and translate.

### Source excerpt

If what you are mapping is incoherent, don't fall in love with the map (or your personal ability to navigate with it).

## Codename One Adds a Pure-Vector MapView and Pluggable Native Map Providers

DevFeed: [Codename One Adds a Pure-Vector MapView and Pluggable Native Map Providers](<https://devfeed.tech/articles/maps-you-control-a-pure-vector-mapview-and-pluggable-native-providers-19658.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/vector-and-native-maps/>)

Author: Shai Almog

Published: 2026-06-27T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Framework](<https://devfeed.tech/topics/framework.md>), [Google Maps](<https://devfeed.tech/topics/google-maps.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [code](<https://devfeed.tech/tags/code.md>), [framework](<https://devfeed.tech/tags/framework.md>), [google-maps](<https://devfeed.tech/tags/google-maps.md>), [maps](<https://devfeed.tech/tags/maps.md>), [native](<https://devfeed.tech/tags/native.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

The article describes a Codename One mapping update that adds a pure-vector MapView and a NativeMap using platform map providers behind a shared API. The vector engine uses Mapbox Vector Tiles, existing drawing pipelines, pluggable tile sources, and MapLibre-subset JSON styling.

### Source excerpt

A pure-vector MapView rendered through Graphics plus a NativeMap whose provider is wired by a build hint, not code.

## Funding Open Source Without The Bait And Switch: Analytics, Native Maps, TV And More

DevFeed: [Funding Open Source Without The Bait And Switch: Analytics, Native Maps, TV And More](<https://devfeed.tech/articles/funding-open-source-without-the-bait-and-switch-analytics-native-maps-tv-and-more-19307.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/funding-open-source-without-the-bait-and-switch/>)

Author: Shai Almog

Published: 2026-06-26T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Open Source](<https://devfeed.tech/topics/open-source.md>), [GNU General Public License](<https://devfeed.tech/topics/gpl.md>), [API](<https://devfeed.tech/topics/api.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [analytics](<https://devfeed.tech/tags/analytics.md>), [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [ios](<https://devfeed.tech/tags/ios.md>), [maps](<https://devfeed.tech/tags/maps.md>), [native](<https://devfeed.tech/tags/native.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [source](<https://devfeed.tech/tags/source.md>)

### AI overview

A Codename One release post describes new analytics, native and vector maps, Apple TV and Android TV support, rich text and code editors, and device integrity APIs. It also explains the project's funding model, including GPL licensing with the Classpath Exception and paid build-cloud capacity.

### Source excerpt

A privacy-first analytics API, vector and native maps, Apple TV and Android TV, rich text and code editors, and device integrity APIs, plus how we fund the project without the usual open source bait and switch.

## Wastrel Compiles Hoot Scheme-to-WebAssembly Output

DevFeed: [Wastrel Compiles Hoot Scheme-to-WebAssembly Output](<https://devfeed.tech/articles/wastrelly-wabbits-35034.md>)

Original publisher: [Read original article](<https://wingolog.org/archives/2026/03/31/wastrelly-wabbits>)

Author: Andy Wingo

Published: 2026-03-31T20:34:23Z

Content type: article

Language: en

Sources: [wingolog](<https://devfeed.tech/sources/wingolog.md>)

Topics: [WebAssembly](<https://devfeed.tech/topics/web-assembly.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [scheme](<https://devfeed.tech/topics/scheme.md>)

Tags: [accidentally-quadratic](<https://devfeed.tech/tags/accidentally-quadratic.md>), [aot](<https://devfeed.tech/tags/aot.md>), [bigint](<https://devfeed.tech/tags/bigint.md>), [bignums](<https://devfeed.tech/tags/bignums.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [exception-handling](<https://devfeed.tech/tags/exception-handling.md>), [exceptions](<https://devfeed.tech/tags/exceptions.md>), [gc](<https://devfeed.tech/tags/gc.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [gmp](<https://devfeed.tech/tags/gmp.md>), [hoot](<https://devfeed.tech/tags/hoot.md>), [igalia](<https://devfeed.tech/tags/igalia.md>), [library](<https://devfeed.tech/tags/library.md>), [maps](<https://devfeed.tech/tags/maps.md>), [precision](<https://devfeed.tech/tags/precision.md>), [scheme](<https://devfeed.tech/tags/scheme.md>), [standard](<https://devfeed.tech/tags/standard.md>), [tail-calls](<https://devfeed.tech/tags/tail-calls.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [wastrel](<https://devfeed.tech/tags/wastrel.md>), [webassembly](<https://devfeed.tech/tags/webassembly.md>), [whippet](<https://devfeed.tech/tags/whippet.md>)

### AI overview

The article describes recent work on Wastrel, an ahead-of-time WebAssembly compiler, including compiling output from the Hoot Scheme-to-Wasm compiler. It covers implementing bignum operations with mini-gmp and updating Hoot to use standardized WebAssembly exception handling.

### Source excerpt

Good day! Today (tonight), some notes on the last couple months of Wastrel, my ahead-of-time WebAssembly compiler. Back in the beginning of February, I showed Wastrel running programs that use garbage collection, using an embedded copy of the Whippet collector, specialized to the types present in the Wasm program. But, the two synthetic GC-using programs I tested on were just ported microbenchmarks, and didn't reflect the output of any real toolchain. In this cycle I worked on compiling the output from the Hoot Scheme-to-Wasm compiler. There were some interesting challenges! bignums When I originally wrote the Hoot compiler, it targetted the browser, which already has a bignum implementation in the form of BigInt, which I worked on back in the day. Hoot-generated Wasm files use host bigints via externref (though wrapped in structs to allow for hashing and identity). In Wastrel, then, I implemented the imports that implement bignum operations: addition, multiplication, and so on. I did so using mini-gmp, a stripped-down implementation of the workhorse GNU multi-precision library. At some point if bignums become important, this gives me the option to link to the full GMP instead. Bignums were the first managed data type in Wastrel that wasn't defined as part of the Wasm module itself, instead hiding behind externref, so I had to add a facility to allocate type codes to these "host" data types. More types will come in time: weak maps, ephemerons, and so on. I think bignums would be a great proposal for the Wasm standard, similar to stringref ideally (sniff!), possibly in an attenuated form. exception handling Hoot used to emit a pre-standardization form of exception handling, and hadn't gotten around to updating to the newer version that was standardized last July. I updated Hoot to emit the newer kind of exceptions, as it was easier to implement them in Wastrel that way. Some of the problems Chris Fallin contended with in Wasmtime don't apply in the Wastrel case: sinc

## Text formats are everywhere. Why?

DevFeed: [Text formats are everywhere. Why?](<https://devfeed.tech/articles/text-formats-are-everywhere-why-29394.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/03/05/text-formats-are-everywhere-why/>)

Author: Daniel Lemire

Published: 2026-03-05T14:40:58Z

Content type: opinion

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [Internet](<https://devfeed.tech/topics/internet.md>), [data](<https://devfeed.tech/topics/data.md>), [Web](<https://devfeed.tech/topics/web.md>), [JSON](<https://devfeed.tech/topics/json.md>), [HTML](<https://devfeed.tech/topics/html.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Code](<https://devfeed.tech/topics/code.md>), [GeoJSON](<https://devfeed.tech/topics/geojson.md>), [SVG](<https://devfeed.tech/topics/svg.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [html](<https://devfeed.tech/tags/html.md>), [internet](<https://devfeed.tech/tags/internet.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [json](<https://devfeed.tech/tags/json.md>), [maps](<https://devfeed.tech/tags/maps.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [web](<https://devfeed.tech/tags/web.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This commentary explains why text formats remain dominant across Internet technologies and data exchange. It argues that text is often efficient in practice, easier to transform, search, quote, version, and inspect, while noting that binary formats can be preferable in some performance-sensitive cases. It also emphasizes parsing and validating data received from remote sources.

### Source excerpt

The Internet relies on text formats. Thus, we spend a lot of time producing and consuming data encoded in text. Your web pages are HTML. The code running in them is JavaScript, sent as text (JavaScript source), not as already-parsed code. Your emails, including their attachments, are sent as text (your binary files are sent ... Continue reading Text formats are everywhere. Why?

## OpenDroneLog: A Self Hosted DJI Flight Log Dashboard

DevFeed: [OpenDroneLog: A Self Hosted DJI Flight Log Dashboard](<https://devfeed.tech/articles/opendronelog-a-self-hosted-dji-flight-log-dashboard-10736.md>)

Original publisher: [Read original article](<https://noted.lol/opendronelog/>)

Author: Jeremy

Published: 2026-03-02T14:34:38Z

Content type: article

Language: en

Sources: [Noted](<https://devfeed.tech/sources/noted.md>)

Topics: [Flight](<https://devfeed.tech/topics/flight.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>), [Local-First](<https://devfeed.tech/topics/local-first.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [DuckDB](<https://devfeed.tech/topics/duckdb.md>), [React](<https://devfeed.tech/topics/react.md>), [Tauri](<https://devfeed.tech/topics/tauri.md>), [telemetry](<https://devfeed.tech/topics/telemetry.md>)

Tags: [docker](<https://devfeed.tech/tags/docker.md>), [duckdb](<https://devfeed.tech/tags/duckdb.md>), [local](<https://devfeed.tech/tags/local.md>), [local-first](<https://devfeed.tech/tags/local-first.md>), [maps](<https://devfeed.tech/tags/maps.md>), [react](<https://devfeed.tech/tags/react.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>), [self-hosted-logging](<https://devfeed.tech/tags/self-hosted-logging.md>), [storage](<https://devfeed.tech/tags/storage.md>), [tauri](<https://devfeed.tech/tags/tauri.md>), [telemetry](<https://devfeed.tech/tags/telemetry.md>)

### AI overview

OpenDroneLog is a self-hosted dashboard for analyzing DJI flight logs and Litchi CSV exports. It organizes local telemetry into maps, charts, battery-health tracking, maintenance data, and printable reports, with desktop and Docker-deployable web versions.

### Source excerpt

OpenDroneLog is a self hosted flight log dashboard for DJI and Litchi files that turns raw telemetry into maps, charts, battery health insights, and printable reports using a Docker deployable web app with local first storage.

## p-fast trie: lexically ordered hash map

DevFeed: [p-fast trie: lexically ordered hash map](<https://devfeed.tech/articles/p-fast-trie-lexically-ordered-hash-map-36219.md>)

Original publisher: [Read original article](<https://dotat.at/@/2025-08-04-p-fast-trie.html>)

Published: 2025-08-04T20:52:21Z

Content type: article

Language: en

Sources: [Tony Finch's blog](<https://devfeed.tech/sources/tony-finch-s-blog.md>)

Topics: [hash](<https://devfeed.tech/topics/hash.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Rust](<https://devfeed.tech/topics/rust.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [bits](<https://devfeed.tech/tags/bits.md>), [hash](<https://devfeed.tech/tags/hash.md>), [map](<https://devfeed.tech/tags/map.md>), [maps](<https://devfeed.tech/tags/maps.md>), [query](<https://devfeed.tech/tags/query.md>)

### AI overview

This article sketches the p-fast trie, a proposed lexically ordered hash map that replaces a qp-trie's tree and interior pointers with stratified hash-map levels keyed by prefixes. It describes O(1) exact-match lookups and O(log k) predecessor and successor searches, while noting that the practical benefit is uncertain.

### Source excerpt

Here's a sketch of an idea that might or might not be a good idea. Dunno if it's similar to something already described in the literature - if you know of something, please let me know via the links in the footer! The gist is to throw away the tree and interior pointers from a qp-trie. Instead, the p-fast trie is stored using a hash map organized into stratified levels, where each level corresponds to a prefix of the key. Exact-match lookups are normal O(1) hash map lookups. Predecessor / successor searches use binary chop on the length of the key. Where a qp-trie search is O(k), where k is the length of the key, a p-fast trie search is O(log k). This smaller O(log k) bound is why I call it a "p-fast trie" by analogy with the x-fast trie, which has O(log log N) query time. (The "p" is for popcount.) I'm not sure if this asymptotic improvement is likely to be effective in practice; see my thoughts towards the end of this note. layout A p-fast trie consists of: Leaf objects, each of which has a name. Each leaf object refers to its successor forming a circular linked list. (The last leaf refers to the first.) Multiple interior nodes refer to each leaf object. A hash map containing every (strict) prefix of every name in the trie. Each prefix maps to a unique interior node. Names are treated as bit strings split into chunks of (say) 6 bits, and prefixes are whole numbers of chunks. An interior node contains a (1<<6) == 64 wide bitmap with a bit set for each chunk where prefix+chunk matches a key. Following the bitmap is a popcount-compressed array of references to the leaf objects that are the closest predecessor of the corresponding prefix+chunk key. Prefixes are strictly shorter than names so that we can avoid having to represent non-values after the end of a name, and so that it's OK if one name is a prefix of another. The size of chunks and bitmaps might change; 6 is a guess that I expect will work OK. For restricted alphabets you can use something like my DNS trie n

## Google Maps UI Test Automation with Maestro - Full Tutorial

DevFeed: [Google Maps UI Test Automation with Maestro - Full Tutorial](<https://devfeed.tech/articles/google-maps-ui-test-automation-with-maestro-full-tutorial-22937.md>)

Original publisher: [Read original article](<https://maestro.dev/blog/what-if-we-test-google-maps->)

Author: Leland Takamine

Published: 2025-07-01T16:23:00Z

Content type: tutorial

Language: en

Sources: [mobile.dev - Medium](<https://devfeed.tech/sources/mobile-dev-medium.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Test automation](<https://devfeed.tech/topics/test-automation.md>), [Google Maps](<https://devfeed.tech/topics/google-maps.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [cli](<https://devfeed.tech/tags/cli.md>), [google-maps](<https://devfeed.tech/tags/google-maps.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [maps](<https://devfeed.tech/tags/maps.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [test-automation](<https://devfeed.tech/tags/test-automation.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

A step-by-step tutorial for automating a Google Maps UI test with the open-source Maestro framework. It covers installing the Maestro CLI, launching the app with clearState, tapping, typing, swiping, scrolling until an element is visible, validating with regex, and running a complete YAML flow.

### Source excerpt

Discover step-by-step automated Google Maps UI testing with Maestro: complete YAML guide to tap, input, swipe, scroll commands and fast assertions.

## Rain: A key-value store for Strava's scale

DevFeed: [Rain: A key-value store for Strava's scale](<https://devfeed.tech/articles/rain-a-key-value-store-for-strava-s-scale-26575.md>)

Original publisher: [Read original article](<https://medium.com/strava-engineering/rain-a-key-value-store-for-stravas-scale-7f580f5b4848?source=rss----89d4108ce2a3---4>)

Author: Derick Yang

Published: 2025-01-24T18:02:11Z

Content type: article

Language: en

Sources: [Strava Engineering](<https://devfeed.tech/sources/strava-engineering.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [datasets](<https://devfeed.tech/topics/datasets.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Apache Cassandra](<https://devfeed.tech/topics/cassandra.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [caching](<https://devfeed.tech/tags/caching.md>), [cassandra](<https://devfeed.tech/tags/cassandra.md>), [data](<https://devfeed.tech/tags/data.md>), [data-pipeline](<https://devfeed.tech/tags/data-pipeline.md>), [databases](<https://devfeed.tech/tags/databases.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [key-value-store](<https://devfeed.tech/tags/key-value-store.md>), [maps](<https://devfeed.tech/tags/maps.md>), [memory](<https://devfeed.tech/tags/memory.md>), [performance](<https://devfeed.tech/tags/performance.md>), [production](<https://devfeed.tech/tags/production.md>), [s3](<https://devfeed.tech/tags/s3.md>), [scale](<https://devfeed.tech/tags/scale.md>), [spark](<https://devfeed.tech/tags/spark.md>)

### AI overview

Strava's Geo and Metro teams work with large, immutable datasets derived from map, GPS, and third-party data. The article describes the challenges of serving these datasets and the limitations of using PalDB and Cassandra, including slow deployments, duplicated memory usage, cost constraints, and schema inflexibility.

### Source excerpt

Much of our heatmaps are built on batch data outputs stored in Rain At Strava, we love maps -- some of our most loved features are nestled on map surfaces. My team, the Geo team, is focused on building and improving these products. On the Geo and Metro teams, we tend to work with large datasets: aggregations of open source map data via OpenStreetMaps, GPS data points from uploaded activities, third-party datasets for properties like elevation, and beyond. This aggregated dataset eventually turns into Geo features we know and love, like the global heatmap, Strava Metro, the routing product, route suggestions, elevation profiles, and points of interest. We perform these data aggregations in a rather hefty data pipeline, run on a regular cadence to ensure we're serving up-to-date geo data. One of the Geo team's key challenges is efficiently serving large, immutable (write-once, read-many) datasets produced by our pipeline. This is particularly hard for compute-intensive use cases like routing, where: Write-Optimized vs. Read-Optimized Conflict: Traditional read-optimized data stores struggle with large batch writes without impacting read performance or introducing significant operational complexity. Cost Constraints: Storing rarely accessed datasets in production databases can be prohibitively expensive -- especially for projects like Strava Metro, which are accessed sporadically. Schema Complexity: Defining schemas externally from the service that uses them can be costly and inflexible for developers. Previously Our previous solution to large writes used a combination of datastores: PalDB and Cassandra. PalDB is a binary data format ideal for small datasets. The README states that it is optimized for "side data", relatively small datasets you read "in passing" on your service. PalDB is unideal, however, for larger datasets. In our case, since each service deployment required downloading the key-value file from S3, our deployments were taking upwards of twenty minutes. S

## Important Change! Switching map and construction syntax.

DevFeed: [Important Change! Switching map and construction syntax.](<https://devfeed.tech/articles/important-change-switching-map-and-construction-syntax-22387.md>)

Original publisher: [Read original article](<https://www.red-lang.org/2024/02/important-change-switching-map-and.html>)

Author: Unknown (noreply@blogger.com)

Published: 2024-02-11T14:37:00Z

Content type: opinion

Language: en

Sources: [Red](<https://devfeed.tech/sources/red.md>)

Topics: [Red](<https://devfeed.tech/topics/red.md>), [Code](<https://devfeed.tech/topics/code.md>), [Script](<https://devfeed.tech/topics/script.md>), [Instrumentation](<https://devfeed.tech/topics/instrumentation.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [language](<https://devfeed.tech/tags/language.md>), [lexer](<https://devfeed.tech/tags/lexer.md>), [map](<https://devfeed.tech/tags/map.md>), [maps](<https://devfeed.tech/tags/maps.md>), [migration](<https://devfeed.tech/tags/migration.md>), [safety](<https://devfeed.tech/tags/safety.md>), [switching](<https://devfeed.tech/tags/switching.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

The article announces that Red and Rebol3 will swap the syntactic forms used for map! values and construction syntax. It explains the evaluation behavior motivating the change, notes the resulting incompatibility with Rebol2 construction syntax, and describes tools for automatically converting scripts.

### Source excerpt

Sometimes deep changes take a huge amount of code. Sometimes they take a lot of detailed explanation and consideration, leading to long discussions and people taking sides. Rarely does an important syntactic change to a language happen quickly, with universal agreement, simple implementation, and tools to help update scripts in the wild. Today is one of those rare days. Admittedly, this idea has been discussed for a long time. It would surface, people nodded their virtual heads, and it would submerge again. Today it's ready to deploy. Not only that, but Rebol3 is making the same change, so the two languages will still be compatible in this regard. What is the change? It's easy to describe. Today, map! values use this syntax: #(...) and construction syntax (sometimes called serialized form or loadable form) looks like this: #[...]. Going forward, those syntactic forms will be swapped. Why? The answer is easy. In Redbol langs, blocks do not evaluate by default, you have to do or reduce them. Parens, on the other hand, do evaluate by default. Today, maps use paren-like syntax, but they do not evaluate, while construction syntax uses block-like syntax, but does evaluate. This is a carryover from Rebol, so the major concession here is that Red and Rebol3 will no longer be compatible with Rebol2's construction syntax. If you've never heard of construction syntax, there's a nice explanation of it here. Red only supports a few values via construction syntax today, all datatype literals, true, false, none, and unset; but eventually it will support much more. If you look at the help for mold, you'll see that /all is TBD (very partially implemented for now), and that's how you create loadable, serialized, data that can safely and easily contain any value (like redbin but readable by humans). It helps avoid cases where none or true/false may load as words. This is also why construct evaluates those specific words (including also on/off/yes/no), but not others. When loading untr

## Map as a property delegate

DevFeed: [Map as a property delegate](<https://devfeed.tech/articles/map-as-a-property-delegate-39211.md>)

Original publisher: [Read original article](<https://kt.academy/article/ak-map-delegate>)

Published: 2023-05-08T00:15:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [properties](<https://devfeed.tech/topics/properties.md>), [interface](<https://devfeed.tech/topics/interface.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [function](<https://devfeed.tech/tags/function.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [maps](<https://devfeed.tech/tags/maps.md>), [property](<https://devfeed.tech/tags/property.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [state](<https://devfeed.tech/tags/state.md>), [variables](<https://devfeed.tech/tags/variables.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A Kotlin tutorial explains how Map can act as a read-only property delegate, including use cases for objects with known and dynamically added properties. It also explains variable assignment and shared mutable-object behavior through a community puzzle.

### Source excerpt

How do we use Map as a property delegate, and why the result of a famous puzzler should not be surprising.

## QGIS is the mapping software you didn't know you needed

DevFeed: [QGIS is the mapping software you didn't know you needed](<https://devfeed.tech/articles/qgis-is-the-mapping-software-you-didn-t-know-you-needed-41498.md>)

Original publisher: [Read original article](<https://chollinger.com/blog/2023/01/qgis-is-the-mapping-software-you-didnt-know-you-needed/>)

Author: Christian Hollinger

Published: 2023-01-24T00:00:00Z

Content type: article

Language: en

Sources: [Christian Hollinger](<https://devfeed.tech/sources/christian-hollinger.md>)

Topics: [qgis](<https://devfeed.tech/topics/qgis.md>), [Geographic Information System](<https://devfeed.tech/topics/gis.md>), [geospatial](<https://devfeed.tech/topics/geospatial.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [data](<https://devfeed.tech/tags/data.md>), [geospatial](<https://devfeed.tech/tags/geospatial.md>), [gps](<https://devfeed.tech/tags/gps.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [maps](<https://devfeed.tech/tags/maps.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [python](<https://devfeed.tech/tags/python.md>), [qgis](<https://devfeed.tech/tags/qgis.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

The article introduces QGIS as free and open-source geographic information system software for combining public geospatial data and creating maps. It discusses using QGIS with data such as census information, demographics, elevation data, flood plains, soil data, light pollution, and zoning codes, including a recreational-property use case.

### Source excerpt

QGIS is incredible: You can build maps that make use of the absolute wealth of public data out there and put Google Maps to absolute shame. This article is doing just that.

## Collections: Maps

DevFeed: [Collections: Maps](<https://devfeed.tech/articles/collections-maps-25060.md>)

Original publisher: [Read original article](<https://typealias.com/start/kotlin-maps/>)

Author: author@typealias.com (Dave Leeds)

Published: 2022-05-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [associate](<https://devfeed.tech/tags/associate.md>), [association](<https://devfeed.tech/tags/association.md>), [build](<https://devfeed.tech/tags/build.md>), [collections](<https://devfeed.tech/tags/collections.md>), [groupby](<https://devfeed.tech/tags/groupby.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [map](<https://devfeed.tech/tags/map.md>), [maps](<https://devfeed.tech/tags/maps.md>), [pair](<https://devfeed.tech/tags/pair.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

A tutorial chapter introduces maps as a Kotlin collection for storing associations between values. It explains the concept using a hardware-and-tools example and begins showing how to create associations with a class constructor.

### Source excerpt

In the last chapter, we saw how collections, such as lists and sets, can be used to do things that couldn't be done easily with separate, individual variables. In this chapter, we're going to look at another kind of collection--a map, which can hold many associations between values. Let's check it out! The Right Tool for the Job "You gotta use the right tool for the job." That's what Mr. Patchwell taught his young son, Jack, who was just starting to learn how to become a handyman like his old man.

## A New Functional Approach to Complex Types in Apache Hive

DevFeed: [A New Functional Approach to Complex Types in Apache Hive](<https://devfeed.tech/articles/a-new-functional-approach-to-complex-types-in-apache-hive-27969.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2019-01-30-functional-approach-complex-types-apache-hive/>)

Author: Jan Filipiak Software programmer; Constantly Surprised By How Stupid Computers Are Still Knows Where His Towel Is

Published: 2019-01-30T00:00:00Z

Content type: article

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [NoSQL](<https://devfeed.tech/topics/nosql.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>)

Tags: [arrays](<https://devfeed.tech/tags/arrays.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [maps](<https://devfeed.tech/tags/maps.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [nosql](<https://devfeed.tech/tags/nosql.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [sql](<https://devfeed.tech/tags/sql.md>), [structure](<https://devfeed.tech/tags/structure.md>), [table](<https://devfeed.tech/tags/table.md>)

### AI overview

This article examines how Apache Hive handles complex data types such as maps, arrays, and structs. It explains how Hive can process these types through SQL, custom programs, JVM-based user-defined functions, and table-generating functions such as explode() and inline().

### Source excerpt

When faced with the challenge to store, retrieve and process small or large amounts of data, structured query languages are typically not far away. These languages serve as a nice abstraction be...

## Vespa Product Updates, December 2018 - ONNX Import and Map Attribute Grouping

DevFeed: [Vespa Product Updates, December 2018 - ONNX Import and Map Attribute Grouping](<https://devfeed.tech/articles/vespa-product-updates-december-2018-onnx-import-and-map-attribute-grouping-20495.md>)

Original publisher: [Read original article](<https://yahooeng.tumblr.com/post/181089393751>)

Author: amberwilsonla-blog

Published: 2018-12-13T22:18:41Z

Content type: release

Language: en

Sources: [Yahoo](<https://devfeed.tech/sources/yahoo.md>)

Topics: [onnx](<https://devfeed.tech/topics/onnx.md>), [AI Models](<https://devfeed.tech/topics/ai-models.md>), [API](<https://devfeed.tech/topics/api.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>)

Tags: [cost](<https://devfeed.tech/tags/cost.md>), [format](<https://devfeed.tech/tags/format.md>), [import](<https://devfeed.tech/tags/import.md>), [maps](<https://devfeed.tech/tags/maps.md>), [onnx](<https://devfeed.tech/tags/onnx.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [tensorflow](<https://devfeed.tech/tags/tensorflow.md>), [tensors](<https://devfeed.tech/tags/tensors.md>), [yahoo-engineering](<https://devfeed.tech/tags/yahoo-engineering.md>)

### AI overview

This Vespa product update covers improved Streaming Search performance, ONNX model importing and conversion to Tensors for ranking, more precise transaction log pruning during restarts, and grouping on map attribute fields.

### Source excerpt

yahoodevelopers: Today we're kicking off a blog post series of need-to-know updates on Vespa, summarizing the features and fixes detailed in Github issues. We welcome your contributions and feedback about any new features or improvements you'd like to see. For December, we're excited to share the following product news: Streaming Search Performance Improvement Streaming Search is a solution for applications where each query only searches a small, statically determined subset of the corpus. In this case, Vespa searches without building reverse indexes, reducing storage cost and making writes more efficient. With the latest changes, the document type is used to further limit data scanning, resulting in lower latencies and higher throughput. Read more here. ONNX Integration ONNX is an open ecosystem for interchangeable AI models. Vespa now supports importing models in the ONNX format and transforming the models into Tensors for use in ranking. This adds to the TensorFlow import included earlier this year and allows Vespa to support many training tools. While Vespa's strength is real-time model evaluation over large datasets, to get started using single data points, try the stateless model evaluation API. Explore this integration more in Ranking with ONNX models. Precise Transaction Log Pruning Vespa is built for large applications running continuous integration and deployment. This means nodes restart often for software upgrades, and node restart time matters. A common pattern is serving while restarting hosts one by one. Vespa has optimized transaction log pruning with prepareRestart, due to flushing as much as possible before stopping, which is quicker than replaying the same data after restarting. This feature is on by default. Learn more in live upgrade and prepareRestart. Grouping on Maps Grouping is used to implement faceting. Vespa has added support to group using map attribute fields, creating a group for values whose keys match the specified key, or field valu

## Cloud Firestore vs the Realtime Database: Which one do I use?

DevFeed: [Cloud Firestore vs the Realtime Database: Which one do I use?](<https://devfeed.tech/articles/cloud-firestore-vs-the-realtime-database-which-one-do-i-use-16230.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2017/10/cloud-firestore-for-rtdb-developers>)

Author: Todd Kerpelman

Published: 2017-10-03T00:00:00Z

Content type: comparison

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Realtime Database](<https://devfeed.tech/topics/realtime-database.md>), [Database](<https://devfeed.tech/topics/database.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [collections](<https://devfeed.tech/tags/collections.md>), [database](<https://devfeed.tech/tags/database.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firestore](<https://devfeed.tech/tags/firestore.md>), [json](<https://devfeed.tech/tags/json.md>), [maps](<https://devfeed.tech/tags/maps.md>), [realtime-database](<https://devfeed.tech/tags/realtime-database.md>)

### AI overview

This Firebase team article compares Cloud Firestore with Firebase Realtime Database. It explains that Firestore uses a structured document-and-collection model, supports shallow queries, and provides more powerful querying capabilities, helping developers choose between the two databases.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Codename One Updates Google Maps Integration with Improved Widget Layering and Simulator Behavior

DevFeed: [Codename One Updates Google Maps Integration with Improved Widget Layering and Simulator Behavior](<https://devfeed.tech/articles/new-improved-native-google-maps-19402.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/new-improved-native-google-maps/>)

Author: Steve Hannah

Published: 2017-03-13T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Google Maps](<https://devfeed.tech/topics/google-maps.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [ui](<https://devfeed.tech/topics/ui.md>), [API](<https://devfeed.tech/topics/api.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [apis](<https://devfeed.tech/tags/apis.md>), [code](<https://devfeed.tech/tags/code.md>), [google-maps](<https://devfeed.tech/tags/google-maps.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [library](<https://devfeed.tech/tags/library.md>), [maps](<https://devfeed.tech/tags/maps.md>), [native](<https://devfeed.tech/tags/native.md>), [ui](<https://devfeed.tech/tags/ui.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

Codename One released an update to its Google Maps library that allows Codename One widgets to appear over native maps and makes the simulator behave more like actual devices. The simulator now uses an internal BrowserComponent with the Google Maps Javascript API, while configuration requires separate keys for Android, iOS, and JavaScript.

### Source excerpt

One of the primary use-cases that benefits from our recent improvements for native peer integration, is "map apps". That is, apps that use native maps in some shape or form. This is an extremely common use case for mobile apps these days. Codename One has supported native maps for quite some time, but (up until recently), they were limited by a couple of factors: Native Widgets Were Always In Front - Since Google Maps were "native" widgets Codename One couldn't paint over top of the map. Native widgets were always placed in front of the Codename One UI. We could place markers on the map, and draw paths using MapContainer APIs (which were backed by native code on each platform), but we couldn't, for example, place a Button over top of the map. The Simulator Still Used the Old MapComponent - The simulator didn't have support for native maps. It would just use the light-weight Codename One MapComponent, which uses tiles (rather than vector graphics like the native maps), and didn't behave the same as native maps in some cases. E.g. you could draw over top of the MapComponent, which would cause a bit of a surprise if you were counting on that, only to find out after building for iOS that your beautiful buttons were rendered behind the map. I am happy to announce that on Friday we released an update for the Google maps library that resolves both of these issues.

## Questions of the Week 46

DevFeed: [Questions of the Week 46](<https://devfeed.tech/articles/questions-of-the-week-46-19475.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/questions-of-the-week-46/>)

Author: Shai Almog

Published: 2017-03-09T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Web](<https://devfeed.tech/topics/web.md>), [Google Maps](<https://devfeed.tech/topics/google-maps.md>), [bug](<https://devfeed.tech/topics/bug.md>), [debug](<https://devfeed.tech/topics/debug.md>), [App](<https://devfeed.tech/topics/app.md>), [Stack Overflow](<https://devfeed.tech/topics/stackoverflow.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [backup](<https://devfeed.tech/tags/backup.md>), [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [debug](<https://devfeed.tech/tags/debug.md>), [github](<https://devfeed.tech/tags/github.md>), [google-maps](<https://devfeed.tech/tags/google-maps.md>), [maps](<https://devfeed.tech/tags/maps.md>), [storage](<https://devfeed.tech/tags/storage.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

A weekly Codename One update covering a Google Maps library web fallback, bug fixes, new functionality, developer discussions, debugging issues, storage behavior, and Google's backup policy change.

### Source excerpt

This has been one of the more exhausting weeks for me in recent years. I don't remember this level of exhaustion since those first few months of launching Codename One. Getting everything ready is the hard part, doing the actual bootcamp is the relatively easy part... Despite all of that we still got some things done this week. Steve reworked the google maps cn1lib to have a web fallback option. He wrote a pretty big post on it but I didn't want it to get lost in the whole "bootcamp launch" posts so we'll post it next week. Our update of the week includes some bug fixes and a bit of new functionality that we will cover in posts next week.

## HTML Maps, Z-Order Peer & Properties Update

DevFeed: [HTML Maps, Z-Order Peer & Properties Update](<https://devfeed.tech/articles/html-maps-z-order-peer-properties-update-19326.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/html-maps-z-order-peer-properties-update/>)

Author: Shai Almog

Published: 2017-01-18T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Google Maps](<https://devfeed.tech/topics/google-maps.md>), [browser](<https://devfeed.tech/topics/browser.md>), [HTML](<https://devfeed.tech/topics/html.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [component](<https://devfeed.tech/tags/component.md>), [html](<https://devfeed.tech/tags/html.md>), [maps](<https://devfeed.tech/tags/maps.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

This developer update describes a new Google HTML Maps fallback for environments where Google Maps is unavailable, along with progress toward z-ordering for peer components and updates to API property handling. The HTML Maps mode is off by default because it requires a key, lacks complete component mapping, and needs server functionality.

### Source excerpt

One of the problems with native maps is that they work very differently between the device and the simulator. This is because we use MapComponent on the simulator and as a fallback on the devices where Google Maps isn't available. We just committed a new mode for maps that allows you to use the Google HTML maps as the fallback instead of the MapComponent. This is faster, has better support from Google and is more similar to the way maps work on the physical device because the browser component is also a peer component so similar restrictions will apply. This is off by default since the HTML maps require a key and right now we didn't finish mapping all the components. This also needs some server functionality so I'm not sure when this will land in the actual extension but it's already there if you build from source. We'll post more about this when we do an official refresh of the extension.

## How to turn an Android phone into a cycling GPS

DevFeed: [How to turn an Android phone into a cycling GPS](<https://devfeed.tech/articles/turn-android-into-an-awesome-cycling-gps-28648.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2016/07/21/cyclinggps/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2016-07-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [cycling](<https://devfeed.tech/tags/cycling.md>), [download](<https://devfeed.tech/tags/download.md>), [gps](<https://devfeed.tech/tags/gps.md>), [howto](<https://devfeed.tech/tags/howto.md>), [leaderboard](<https://devfeed.tech/tags/leaderboard.md>), [maps](<https://devfeed.tech/tags/maps.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [offline](<https://devfeed.tech/tags/offline.md>), [people](<https://devfeed.tech/tags/people.md>), [phones](<https://devfeed.tech/tags/phones.md>), [route](<https://devfeed.tech/tags/route.md>)

### AI overview

A tutorial for repurposing an Android phone as a cycling GPS using OsmAnd and Dropsync. It explains how to track activities, import GPX tracks, navigate with screen and voice directions, plan routes with Strava, and use offline maps.

### Source excerpt

Cycling is all about exploring: visiting new places and making existing routes more fun with better streets. So there must be an app that allows to plan your route and start cycling right?

## Converting Plaid to Kotlin: Lessons learned (Part 2)

DevFeed: [Converting Plaid to Kotlin: Lessons learned (Part 2)](<https://devfeed.tech/articles/converting-plaid-to-kotlin-lessons-learned-part-2-27215.md>)

Original publisher: [Read original article](<https://antonioleiva.com/plaid-kotlin-2>)

Published: 2015-11-17T00:00:00Z

Content type: tutorial

Language: en

Sources: [Antonio Leiva](<https://devfeed.tech/sources/antonio-leiva.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Android](<https://devfeed.tech/topics/android.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [callback](<https://devfeed.tech/tags/callback.md>), [code](<https://devfeed.tech/tags/code.md>), [expression](<https://devfeed.tech/tags/expression.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [map](<https://devfeed.tech/tags/map.md>), [maps](<https://devfeed.tech/tags/maps.md>), [when-expression](<https://devfeed.tech/tags/when-expression.md>)

### AI overview

Part 2 of a series about porting the Plaid Android app to Kotlin. It examines how Kotlin can reduce boilerplate and improve readability, including class simplification, when expressions, map operations, and converting Retrofit callbacks into lambdas.

### Source excerpt

Everything Android, Kotlin and other random topics

## Macro View of Map Internals In Go

DevFeed: [Macro View of Map Internals In Go](<https://devfeed.tech/articles/macro-view-of-map-internals-in-go-22087.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2013/12/macro-view-of-map-internals-in-go.html>)

Published: 2013-12-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [fmt](<https://devfeed.tech/tags/fmt.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [hash](<https://devfeed.tech/tags/hash.md>), [internals](<https://devfeed.tech/tags/internals.md>), [map](<https://devfeed.tech/tags/map.md>), [maps](<https://devfeed.tech/tags/maps.md>), [memory](<https://devfeed.tech/tags/memory.md>), [padding](<https://devfeed.tech/tags/padding.md>), [programming](<https://devfeed.tech/tags/programming.md>), [range](<https://devfeed.tech/tags/range.md>)

### AI overview

This tutorial explains how Go maps are created and used, why iteration order is not guaranteed, and how maps are organized internally as hash tables with power-of-two bucket counts. It also introduces bucket selection, overflow, and memory padding.

### Source excerpt

Introduction There are lots of posts that talk about the internals of slices, but when it comes to maps, we are left in the dark. I was wondering why and then I found the code for maps and it all made sense. https://golang.org/src/runtime/hashmap.go At least for me, this code is complicated. That being said, I think we can create a macro view of how maps are structured and grow. This should explain why they are unordered, efficient and fast. Creating and Using Maps Let's look at how we can use a map literal to create a map and store a few values:

## Using Time, Timezones and Location in Go

DevFeed: [Using Time, Timezones and Location in Go](<https://devfeed.tech/articles/using-time-timezones-and-location-in-go-22069.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2013/08/using-time-timezones-and-location-in-go.html>)

Published: 2013-08-08T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [API](<https://devfeed.tech/topics/api.md>), [XML](<https://devfeed.tech/topics/xml.md>), [DateTime](<https://devfeed.tech/topics/datetime.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [developers](<https://devfeed.tech/tags/developers.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [google](<https://devfeed.tech/tags/google.md>), [http](<https://devfeed.tech/tags/http.md>), [json](<https://devfeed.tech/tags/json.md>), [maps](<https://devfeed.tech/tags/maps.md>), [programming](<https://devfeed.tech/tags/programming.md>), [services](<https://devfeed.tech/tags/services.md>), [web-services](<https://devfeed.tech/tags/web-services.md>)

### AI overview

This tutorial explains how to resolve local tide-station times to UTC in Go. It compares Google's Timezone API and GeoNames's timezone API, including their request requirements, response data, and stated usage considerations, then begins implementing a Google API call in Go.

### Source excerpt

I ran into a problem today. I was building code to consume NOAA's tide station XML document and quickly realized I was in trouble. Here is a small piece of that XML document: <timezone>LST/LDT</timezone> <item> <date>2013/01/01</date> <day>Tue</day> <time>02:06 AM</time> <predictions_in_ft>19.7</predictions_in_ft> <predictions_in_cm>600</predictions_in_cm> <highlow>H</highlow> </item> If you notice the timezone tag, it states the time is in Local Standard Time / Local Daylight Time. This is a real problem because I need to store this data in UTC. Without a proper timezone I am lost. After scratching my head for a bit my business partner showed me two API's that take a latitude and longitude position and return timezone information. Luckily for me I have a latitude and longitude position for each tide station. If you open this web page you can read the documentation for Google's Timezone API: External resource on developers.google.com: https://developers.google.com/maps/documentation/timezone/ The API is fairly simple. It requires a location, timestamps and a flag to identify if the requesting application is using a sensor, like a GPS device, to determine the location. Here is a sample call to the Google API and response: https://maps.googleapis.com/maps/api/timezone/json?location=38.85682,-92.991714&sensor=false&timestamp=1331766000 { "dstOffset" : 3600.0, "rawOffset" : -21600.0, "status" : "OK", "timeZoneId" : "America/Chicago", "timeZoneName" : "Central Daylight Time" } There is a limit of 2,500 calls a day. For my initial load of the tide stations, I knew I was going to hit that limit and I didn't want to wait several days to load all the data. So my business partner found the timezone API from GeoNames. If you open this web page you can read the documentation for GeoNames's Timezone API: [http://www.geonames.org/export/web-services.html#timezone](/broken-link) The API requires a free account which is real quick to setup. Once you activate your account you need t

[Next page](<https://devfeed.tech/tags/maps.md?cursor=WyIyMDEzLTA4LTA4VDAwOjAwOjAwKzAwOjAwIiwgIjRlNGFhZmVhLTI1ZDEtNDJlYS05OWU1LTM5ZjRmNjlkMDEwMiJd>)