# zip

Published articles for zip.

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

## Ruby 4.0.7 Released

DevFeed: [Ruby 4.0.7 Released](<https://devfeed.tech/articles/ruby-4-0-7-released-26578.md>)

Original publisher: [Read original article](<https://www.ruby-lang.org/en/news/2026/09/15/ruby-4-0-7-released/>)

Published: 2026-09-15T00:25:58Z

Content type: release

Language: en

Sources: [Ruby-lang](<https://devfeed.tech/sources/ruby-lang.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [releases](<https://devfeed.tech/topics/releases.md>), [bug](<https://devfeed.tech/topics/bug.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [bugfixes](<https://devfeed.tech/tags/bugfixes.md>), [contributions](<https://devfeed.tech/tags/contributions.md>), [download](<https://devfeed.tech/tags/download.md>), [release](<https://devfeed.tech/tags/release.md>), [release-schedule](<https://devfeed.tech/tags/release-schedule.md>), [releases](<https://devfeed.tech/tags/releases.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [sha256](<https://devfeed.tech/tags/sha256.md>), [xz](<https://devfeed.tech/tags/xz.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

Ruby 4.0.7 has been released as a routine update containing bugfixes. The article says Ruby 4.0.8 is planned for November, with earlier release possible if a significant user-impacting change arises.

### Source excerpt

Ruby 4.0.7 has been released. This is a routine update that includes bugfixes. Please see the GitHub releases for further details. Release Schedule We intend to release the latest stable Ruby version (currently Ruby 4.0) every two months following the most recent release. Ruby 4.0.8 will be released in November. If a change arises that significantly affects users, a release may occur earlier than planned. Download https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.7.tar.gz SIZE: 23937964 SHA1: 730d4f8cebb60a1f5b556e7b58d86d0301772558 SHA256: 911ace20f90d068ca0e4dda6d0e4f0f81e52e52f2dd4f4004c721e253412e82d SHA512: ca6fb2df4b39967f1a92399ab70579216f2a87e600d127a616d4a81a3c92b25ebf35849502a2c12e2251d69e67eade3888af4a41b8844054d5c774f07c237c6d https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.7.tar.xz SIZE: 17995980 SHA1: 7d2307f975b1fef4e0ffe5cfe13067f993b5a4c2 SHA256: 47ef59413f7a4587ba6a6b78b14036eb5e36eec2ec0b90964801e88d56a3d375 SHA512: d1d345c25bff43aa86f536b22cd04746a7d3372077bf47ec75ef1820c0b43d0dbe3573dd5e5c55ee517796f46f0cdbd22c7506aebd06581241eefb5ffd9d2e5f https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.7.zip SIZE: 29248954 SHA1: 82b1bce8abb650e3080b96a0beff810b690dafa4 SHA256: c6f889c6dccd2625ae8d595bdee8e92afb3ddae3a1669bad67bb9f24d6af30ab SHA512: 5456ee1260921589cad5f0c57e84715e9c26b1f438a4c141157093c8e37e7e5d499a96c0ed35641f3cea1b741ecda2d72bfa3ce79fdbd5491784d9e6d181ac09 Release Comment Many committers, developers, and users who provided bug reports helped us make this release. Thanks for their contributions. Posted by k0kubun on 15 Sep 2026

## First Clear Visuals Of Meta's Project Phoenix Headset Found In Quest Firmware

DevFeed: [First Clear Visuals Of Meta's Project Phoenix Headset Found In Quest Firmware](<https://devfeed.tech/articles/first-clear-visuals-of-meta-s-project-phoenix-headset-found-in-quest-firmware-17289.md>)

Original publisher: [Read original article](<https://www.uploadvr.com/meta-project-phoenix-headset-first-clear-visuals/>)

Author: Luna

Published: 2026-09-10T22:53:46Z

Content type: news

Language: en

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

Topics: [Meta](<https://devfeed.tech/topics/meta.md>), [phoenix](<https://devfeed.tech/topics/phoenix.md>), [App](<https://devfeed.tech/topics/app.md>), [QR Code](<https://devfeed.tech/topics/qrcode.md>), [Zip](<https://devfeed.tech/topics/zip.md>)

Tags: [devices](<https://devfeed.tech/tags/devices.md>), [headsets-tech](<https://devfeed.tech/tags/headsets-tech.md>), [meta](<https://devfeed.tech/tags/meta.md>), [phoenix](<https://devfeed.tech/tags/phoenix.md>), [qr-code](<https://devfeed.tech/tags/qr-code.md>), [sensors](<https://devfeed.tech/tags/sensors.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

Meta's HorizonOS Prescription Lens app now contains clear visuals of the Project Phoenix headset. The images show prescription lens attachment and QR-code scanning, a slim glasses-style design with visible sensors, and a cable connecting the headset to a compute puck.

### Source excerpt

The first visuals of Meta's Project Phoenix headset have been found in Horizon OS firmware, revealing a slim design with a tether for the compute puck.

## Mikrotik Winbox 4.3 is out

DevFeed: [Mikrotik Winbox 4.3 is out](<https://devfeed.tech/articles/mikrotik-winbox-4-3-is-out-40185.md>)

Original publisher: [Read original article](<https://blog.j2sw.com/resources/mikrotik-winbox-4-3-is-out/>)

Author: j2sw

Published: 2026-07-29T14:38:07Z

Content type: release

Language: en

Sources: [Justin Wilson (j2sw)](<https://devfeed.tech/sources/justin-wilson-j2sw.md>)

Topics: [MikroTik](<https://devfeed.tech/topics/mikrotik.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [layout](<https://devfeed.tech/topics/layout.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [feature](<https://devfeed.tech/tags/feature.md>), [file](<https://devfeed.tech/tags/file.md>), [form](<https://devfeed.tech/tags/form.md>), [input](<https://devfeed.tech/tags/input.md>), [layout](<https://devfeed.tech/tags/layout.md>), [mikrotik](<https://devfeed.tech/tags/mikrotik.md>), [network-engineering-resources](<https://devfeed.tech/tags/network-engineering-resources.md>), [performance](<https://devfeed.tech/tags/performance.md>), [redesign](<https://devfeed.tech/tags/redesign.md>), [render](<https://devfeed.tech/tags/render.md>), [right](<https://devfeed.tech/tags/right.md>), [sorting](<https://devfeed.tech/tags/sorting.md>), [table](<https://devfeed.tech/tags/table.md>), [toolbar](<https://devfeed.tech/tags/toolbar.md>), [ui](<https://devfeed.tech/tags/ui.md>), [v3](<https://devfeed.tech/tags/v3.md>), [version](<https://devfeed.tech/tags/version.md>), [widget](<https://devfeed.tech/tags/widget.md>), [winbox](<https://devfeed.tech/tags/winbox.md>), [windows](<https://devfeed.tech/tags/windows.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

MikroTik WinBox 4.3 is a release update that adds a Windows ARM64 package and introduces or improves table, form, toolbar, settings, font, login, window-selection, layout, and scrolling behavior.

### Source excerpt

What's new in 4.3 (2026-Jul-20 10:14): *) app: add Windows for arm64 version in file WinBox_Windows_arm64.zip;*) form: make multiline input field height logic as in WinBox v3;*) table: add quick comment feature (allow multi-row commenting);*) table: allow opening "Table settings" also via right mouse click;*) table: calculate implicit height to fit 16 regular rows including ... Read more The post Mikrotik Winbox 4.3 is out appeared first on Justin Wilson (j2sw).

## Automate Python emails with attachments that get delivered

DevFeed: [Automate Python emails with attachments that get delivered](<https://devfeed.tech/articles/automate-python-emails-with-attachments-that-get-delivered-16078.md>)

Original publisher: [Read original article](<https://postmarkapp.com/blog/automate-python-emails-with-attachments-that-get-delivered>)

Author: Greg Svoboda (gsvoboda@activecampaign.com)

Published: 2026-06-30T15:08:00Z

Content type: tutorial

Language: en

Sources: [Postmark (en-US)](<https://devfeed.tech/sources/postmark-en-us.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [attacks](<https://devfeed.tech/tags/attacks.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [code](<https://devfeed.tech/tags/code.md>), [deliverability](<https://devfeed.tech/tags/deliverability.md>), [email-delivery](<https://devfeed.tech/tags/email-delivery.md>), [files](<https://devfeed.tech/tags/files.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [phishing](<https://devfeed.tech/tags/phishing.md>), [python](<https://devfeed.tech/tags/python.md>), [security](<https://devfeed.tech/tags/security.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This tutorial explains how to automate Python emails with attachments while improving deliverability. It covers common causes of attachment-related bounces, including security policies, sender reputation, and inbox-provider restrictions, and recommends examining SMTP bounce messages and error reports.

### Source excerpt

Some of the most important emails require attachments, such as receipts, order confirmations, contracts, or digital assets. You need those emails to arrive automatically and reliably when customers and partners expect them. But attachments tend to increase bounce rates due to either security concerns, reduced engagement signals, or inbox provider policies, making deliverability harder to guarantee. A few key practices help you get top-tier deliverability when email attachments really matter: Follow general email guidelines Understand where problems happen and how to spot them Create processes that put best practices in motion Automate to scale your success for a higher volume Below, we'll show you how to implement these practices in a Python application. Why emails with attachments fail delivery Email bounces happen for a host of reasons. If you send attachments and see bounces, those files are likely causing delivery failures. Attachments pose security risks Phishing and malware attacks often use attachments, so inbox providers scrutinize them closely: Providers automatically block anything executable or compressed (e.g., .7z, .rar, .exe). This policy often extends to .zip files. Providers see red flags when you send unsolicited attachments, especially from new domains, even for "safe" file types like PDFs. Attachments affect sender reputation Recipients tend to avoid opening messages with unexpected attachments. Lower open rates, in turn, harm your domain reputation, making it even harder to deliver your emails. Improving your deliverability starts with digging into exactly where you're having problems. The first resource to consult is SMTP bounce messages. Study your bounce messages If your emails regularly bounce back, it's fair to assume the underlying issue is the file attachments. You can find out more by examining the error reports. The Postmark dashboard helps you make sense of errors. If you don't have the tool set up, you can look into the bounce messages

## Ruby 4.0.4 Released

DevFeed: [Ruby 4.0.4 Released](<https://devfeed.tech/articles/ruby-4-0-4-released-19151.md>)

Original publisher: [Read original article](<https://www.ruby-lang.org/en/news/2026/05/11/ruby-4-0-4-released/>)

Published: 2026-05-11T21:41:38Z

Content type: release

Language: en

Sources: [Ruby-lang](<https://devfeed.tech/sources/ruby-lang.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [bugfixes](<https://devfeed.tech/tags/bugfixes.md>), [contributions](<https://devfeed.tech/tags/contributions.md>), [developers](<https://devfeed.tech/tags/developers.md>), [download](<https://devfeed.tech/tags/download.md>), [release](<https://devfeed.tech/tags/release.md>), [release-schedule](<https://devfeed.tech/tags/release-schedule.md>), [releases](<https://devfeed.tech/tags/releases.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [sha256](<https://devfeed.tech/tags/sha256.md>), [xz](<https://devfeed.tech/tags/xz.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

Ruby 4.0.4 has been released as a routine update containing bug fixes. The article provides download links, checksums, the planned Ruby 4.0 release schedule, and acknowledgments to contributors.

### Source excerpt

Ruby 4.0.4 has been released. This is a routine update that includes bugfixes. Please see the GitHub Releases for further details. Release Schedule We intend to release the latest stable Ruby version (currently Ruby 4.0) every two months following the most recent regular release. Ruby 4.0.5 will be released in July, 4.0.6 in September, and 4.0.7 in November. If a change arises that significantly affects users, a release may occur earlier than planned, and the subsequent schedule may shift accordingly. Download https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.4.tar.gz SIZE: 23816838 SHA1: 3633db75e6b4848b509ecccc64704d8f4467f068 SHA256: f35f6edfa3dabb3f723f9d0cf1906c6512ae77f4e412ab1e68cc6e91d230fa80 SHA512: b0cc9af75ee25628483a32ecd5ea6477d637ee3c75795f411bc4ebde7d86ab754fddf96385cfc5955b9dbd016418cbd7178c82dad7876b2b7119238f5159ed3a https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.4.tar.xz SIZE: 17899740 SHA1: 9e070a8a78e6faa35382360b47526042657b236d SHA256: 6ff9d2d6e75f5a6f997222ecc45f79209d663737eceb3689d1f42ab952673fb7 SHA512: cccc041379fd4e46a736a5c10ccf81627766a7175113c34754797b915bebcd0ce821d9cd7b42cc616b0a1f9ee38eee5ab7560c1840fa6672819c293e498a3f6f https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.4.zip SIZE: 29122429 SHA1: 5edc7ce0adc2851a355673a5bb42b75efd4cf2b2 SHA256: 508bc83baed022c20671d69dd264e6783d61b89767b5d387c0f8efea00b62219 SHA512: b5db7ba616c56bdac9a61362d88d6350c8a8b59b5d812c1395476db73cb60fb403994e0bc3285aa2f57acbef3e30bcfce4bee4c5c8433b39d8f0a7c6dbb9bd29 Release Comment Many committers, developers, and users who provided bug reports helped us make this release. Thanks for their contributions. Posted by k0kubun on 11 May 2026

## How to Sell Printables Online: Platforms, Pricing, and Delivery

DevFeed: [How to Sell Printables Online: Platforms, Pricing, and Delivery](<https://devfeed.tech/articles/how-to-sell-printables-online-platforms-pricing-and-delivery-10363.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/sell-printables-online/>)

Author: Ayush Agarwal

Published: 2026-04-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [pdf](<https://devfeed.tech/topics/pdf.md>), [Template](<https://devfeed.tech/topics/template.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [Automation](<https://devfeed.tech/topics/automation.md>)

Tags: [design](<https://devfeed.tech/tags/design.md>), [digital-products](<https://devfeed.tech/tags/digital-products.md>), [download](<https://devfeed.tech/tags/download.md>), [files](<https://devfeed.tech/tags/files.md>), [free](<https://devfeed.tech/tags/free.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [platforms](<https://devfeed.tech/tags/platforms.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [products](<https://devfeed.tech/tags/products.md>), [tools](<https://devfeed.tech/tags/tools.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

A tutorial on creating, pricing, packaging, and selling printable digital products online. It covers design tools, print-quality requirements, PDF and ZIP delivery, platform considerations, and payment and delivery setup with Dodo Payments.

### Source excerpt

Learn how to create, price, and sell printable digital products online. Covers design tools, delivery automation, and the best platforms for selling printables.

## Ruby 3.2.11 Released

DevFeed: [Ruby 3.2.11 Released](<https://devfeed.tech/articles/ruby-3-2-11-released-19148.md>)

Original publisher: [Read original article](<https://www.ruby-lang.org/en/news/2026/03/27/ruby-3-2-11-released/>)

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

Content type: release

Language: en

Sources: [Ruby-lang](<https://devfeed.tech/sources/ruby-lang.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Security](<https://devfeed.tech/topics/security.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Zip](<https://devfeed.tech/topics/zip.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [cve](<https://devfeed.tech/tags/cve.md>), [download](<https://devfeed.tech/tags/download.md>), [github](<https://devfeed.tech/tags/github.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [security](<https://devfeed.tech/tags/security.md>), [sha256](<https://devfeed.tech/tags/sha256.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

Ruby 3.2.11 has been released with an update to the zlib gem addressing CVE-2026-27820. It is the final Ruby 3.2 release, with no further updates or security fixes planned for the series; users are recommended to upgrade to Ruby 3.4 or 4.0.

### Source excerpt

Ruby 3.2.11 has been released. This release includes an update to the zlib gem addressing CVE-2026-27820. Please see the GitHub releases for further details. This is the final release of the Ruby 3.2 series. We will not provide any further updates, including security fixes, for the Ruby 3.2 series. We recommend upgrading to Ruby 3.4 or 4.0. Download https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.11.tar.gz SIZE: 19984344 SHA1: 9534a3aa08d2ccb4d3c50b1301b2da9a9b91c4ab SHA256: b3eeabd6636f334531db3ffdc3229eb05e524740e6c84fdc043720573cf2f8b2 SHA512: 95896bbf519604da0dc3d82066ac92c3f661b2ee9ffd8e2c9effce4773677445f1dcc43b05539050024b57f4f94f43984a734a03015ac6e29679e79d5a093a67 https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.11.tar.xz SIZE: 14695828 SHA1: 501cecc15ba079087967888ae455d62e5886fbc1 SHA256: c13aec0c206725d5d356acbae6e5fd8bffd92dc325aec14fd5dd7795d4b763d2 SHA512: 418739d476d34e2467e7f1ee60ff63a1969a362b49871bdc488676c1ac7d28b198deee85e2bd951a23f5b0e8425bc89ca59d5c8cb8415fa5ed835555e3d3af8d https://cache.ruby-lang.org/pub/ruby/3.2/ruby-3.2.11.zip SIZE: 24594356 SHA1: 7e84c9433f32a758da123d3b5532cc632d19d503 SHA256: 08ab90aa4ada9268e96aa47fb6c3a77fdb3b2f792f2671053e3b55a6141618ce SHA512: 133d63cd9bb7c9fe38eecd18c996013de0a56fef09c89c42f4fc9c383f09ab4ab3b0b31edbadd1fd1aaa797fbb9c86128ded51c6e5263cd3225754e714b3d195 Release Comment Since the initial release of Ruby 3.2.0 on December 25, 2022, the Ruby 3.2 series has been supported for over three years. We would like to thank all committers, developers, and users who provided bug reports and contributions throughout the life of the Ruby 3.2 series. Posted by hsbt on 27 Mar 2026

## Security Week 2612: ненастоящая уязвимость в архивах ZIP

DevFeed: [Security Week 2612: ненастоящая уязвимость в архивах ZIP](<https://devfeed.tech/articles/security-week-2612-zip-23061.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/kaspersky/articles/1010894/>)

Author: Kaspersky\_Lab ("Лаборатория Касперского")

Published: 2026-03-16T22:26:38Z

Content type: news

Language: ru

Sources: ["Лаборатория Касперского" RU](<https://devfeed.tech/sources/ru-2.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [Compression](<https://devfeed.tech/topics/compression.md>)

Tags: [compression](<https://devfeed.tech/tags/compression.md>), [cve](<https://devfeed.tech/tags/cve.md>), [security](<https://devfeed.tech/tags/security.md>), [tag-9fe8963de219](<https://devfeed.tech/tags/tag-9fe8963de219.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

The article examines a proposed ZIP archive security bypass in which the Compression Method field is changed from DEFLATE to STORED. Experts cited in the article say the method does not work because modified archives fail to unpack in Windows, 7-Zip, and WinRAR. A custom unpacker would already imply system compromise, and the reported CVE-2026-0866 identifier was apparently later withdrawn.

### Source excerpt

На прошлой неделе исследователь Крис Азиз опубликовал информацию о новом способе обхода систем безопасности, якобы позволяющем протаскивать вредоносное ПО под видом обычного ZIP-архива. В свойствах каждого архива в этом формате есть поле Compression Method. При желании данные в архиве можно вовсе не сжимать, и тогда в этом поле будет прописано 0 (STORED). Обычный сжатый архив имеет свойство DEFLATE compressed. Защитному решению или архиватору данный статус указывает на то, что архив нужно сначала распаковать. "Метод", предложенный Азизом, максимально простой. Устанавливаем в поле Compression Method статус STORED (сжатие отсутствует) для обычного архива со сжатием данных, у которого в норме должен быть флаг DEFLATE Compressed. Собственно, на этом все. Защитные решения доверяют описанию архива и сканируют его как контейнер с несжатыми данными. Так как на самом деле данные заархивированы, вредоносное содержимое не будет прочитано. Что открывает возможность "протаскивания" вредоносного кода на компьютер жертвы с последующим выполнением. Но именно на стадии выполнения вредоносного кода казалось бы стройная идея исследователя быстро рушится. Читать далее

## Security Week 2609: новые варианты атак ClickFix

DevFeed: [Security Week 2609: новые варианты атак ClickFix](<https://devfeed.tech/articles/security-week-2609-clickfix-23057.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/kaspersky/articles/1002934/>)

Author: Kaspersky\_Lab ("Лаборатория Касперского")

Published: 2026-02-24T15:15:01Z

Content type: news

Language: ru

Sources: ["Лаборатория Касперского" RU](<https://devfeed.tech/sources/ru-2.md>)

Topics: [ClickFix](<https://devfeed.tech/topics/clickfix.md>), [Security](<https://devfeed.tech/topics/security.md>), [Threat Research](<https://devfeed.tech/topics/threat-research.md>)

Tags: [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [clickfix](<https://devfeed.tech/tags/clickfix.md>), [dns](<https://devfeed.tech/tags/dns.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [nslookup](<https://devfeed.tech/tags/nslookup.md>), [security](<https://devfeed.tech/tags/security.md>), [tag-9fe8963de219](<https://devfeed.tech/tags/tag-9fe8963de219.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

The article reviews two recent ClickFix attack studies. One variant uses nslookup to retrieve part of a malicious script from a controlled DNS server, downloads a ZIP archive, and installs ModeloRAT through VBS persistence. Another uses social engineering and JavaScript pasted into the Swapzone.io browser interface to replace Bitcoin wallet addresses and divert cryptocurrency.

### Source excerpt

На прошлой неделе опубликовано сразу два новых исследования об атаках типа ClickFix, в которых пользователя так или иначе мотивируют самостоятельно выполнять вредоносный код в командной строке. Команда Microsoft Threat Intelligence поделилась чуть более сложным, чем обычно, вариантом атаки, продемонстрированном на скриншоте ниже. Как правило, команда, которую злоумышленники заставляют запустить, содержит адрес, с которого загружается и выполняется вредоносный скрипт. Вероятно, для того чтобы усложнить детектирование атаки в корпоративном окружении и продлить жизнь вредоносной инфраструктуре, в этот простой сценарий вставлен еще один шаг: обращение к контролируемому DNS-серверу. От имени пользователя происходит обращение к DNS-серверу c использованием утилиты nslookup, запрашиваются данные для домена example.com. Из полученных в ответ данных выделяется строка NAME:, которая и содержит вторую часть вредоносного скрипта. Он, в свою очередь, напрямую скачивает ZIP-архив с набором вредоносных программ. На финальной стадии один из VBS-скриптов прописывается в автозапуск и на компьютер жертвы устанавливается троянская программа ModeloRAT. Это далеко не самый изощренный вариант атаки ClickFix. Ранее та же Microsoft сообщала о нетривиальной тактике, предусматривающей намеренное выведение из строя браузера путем установки вредоносного расширения под видом адблокера. Читать далее

## Distribution Survey

DevFeed: [Distribution Survey](<https://devfeed.tech/articles/distribution-survey-31739.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2025/12/distribution-survey>)

Author: Keycloak Cloud Native Team

Published: 2025-12-19T00:00:00Z

Content type: news

Language: en

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

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [container images](<https://devfeed.tech/topics/container-images.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>)

Tags: [cloud-native](<https://devfeed.tech/tags/cloud-native.md>), [container-images](<https://devfeed.tech/tags/container-images.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [idm](<https://devfeed.tech/tags/idm.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [operator](<https://devfeed.tech/tags/operator.md>), [requirements](<https://devfeed.tech/tags/requirements.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

Keycloak's Cloud Native Team is asking users to share their preferences and requirements for distributing and deploying Keycloak through the Operator, container images, or ZIP files. The survey focuses on how distribution choices affect deployment lifecycle concerns such as upgrades, scaling, and configuration.

### Source excerpt

The different ways of distribution - be it the Operator, container images, or plain ZIP file - play a pivotal role in all Keycloak deployments. It is often the first touchpoint for users and sets the tone for their overall experience. The selected distribution method then affects the whole lifecycle of the deployment - upgrades, scaling, configuration, and more. As we continue to evolve Keycloak to better serve cloud native environments, we are seeking your valuable input to understand your preferences and requirements regarding Keycloak distribution and deployment methods. Help us shape the cloud native future of Keycloak by participating in our survey! You can find the survey here.

## Unpacking VStarcam Firmware Updates and Examining Their Security Issues

DevFeed: [Unpacking VStarcam Firmware Updates and Examining Their Security Issues](<https://devfeed.tech/articles/unpacking-vstarcam-firmware-for-fun-and-profit-36628.md>)

Original publisher: [Read original article](<https://palant.info/2025/12/15/unpacking-vstarcam-firmware-for-fun-and-profit/>)

Author: Wladimir Palant

Published: 2025-12-15T14:19:22Z

Content type: tutorial

Language: en

Sources: [Almost Secure](<https://devfeed.tech/sources/almost-secure.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [compression](<https://devfeed.tech/tags/compression.md>), [credentials](<https://devfeed.tech/tags/credentials.md>), [devices](<https://devfeed.tech/tags/devices.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [hardcoded-credentials](<https://devfeed.tech/tags/hardcoded-credentials.md>), [python](<https://devfeed.tech/tags/python.md>), [security](<https://devfeed.tech/tags/security.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This technical article examines VStarcam camera firmware in the context of documented security issues and the lack of clear information about firmware versions, updates, and fixes. It documents multiple firmware branches and update formats, including incremental updates packed as sequences of ZIP files, and describes Python-based methods for unpacking them.

### Source excerpt

One important player in the PPPP protocol business is VStarcam. At the very least they've already accumulated an impressive portfolio of security issues. Like exposing system configuration including access password unprotected in the Web UI (discovered by multiple people independently from the look of it). Or the open telnet port accepting hardcoded credentials (definitely discovered by lots of people independently). In fact, these cameras have been seen used as part of a botnet, likely thanks to some documented vulnerabilities in their user interface. Is that a thing of the past? Are there updates fixing these issues? Which devices can be updated? These questions are surprisingly hard to answer. I found zero information on VStarcam firmware versions, available updates or security fixes. In fact, it doesn't look like they ever even acknowledged learning about the existence of these vulnerabilities. No way around downloading these firmware updates and having a look for myself. With surprising results. First of all: there are lots of firmware updates. It seems that VStarcam accumulated a huge number of firmware branches. And even though not all of them even have an active or downloadable update, the number of currently available updates goes into hundreds. And the other aspect: the variety of update formats is staggering, and often enough standard tools like binwalk aren't too useful. It took some time figuring out how to unpack some of the more obscure variants, so I'm documenting it all here. Warning: Lots of quick-and-dirty Python code ahead. Minimal error checking, use at your own risk! Contents ZIP-packed incremental updates VStarcam pack system VeePai updates Ingenic updates LZO-compressed partitions Ingenic's jzlzma compression Exotic Ingenic update But what about these security issues? ZIP-packed incremental updates These incremental updates don't contain an image of the entire system, only the files that need updating. They always contain the main application

## Birds in the cloud

DevFeed: [Birds in the cloud](<https://devfeed.tech/articles/birds-in-the-cloud-4990.md>)

Original publisher: [Read original article](<https://clickhouse.com/blog/birds>)

Author: Alexey Milovidov

Published: 2025-06-04T08:43:33Z

Content type: article

Language: en

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

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [CSV](<https://devfeed.tech/topics/csv.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [interactive website](<https://devfeed.tech/topics/interactive-website.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [Website](<https://devfeed.tech/topics/website.md>)

Tags: [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [data](<https://devfeed.tech/tags/data.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [interactive-website](<https://devfeed.tech/tags/interactive-website.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This article demonstrates how to download, preview, process, and analyze the eBird bird-observation dataset with ClickHouse. It uses clickhouse-local to work with large CSV data inside a ZIP archive, then loads the data into clickhouse-server to support an interactive website.

### Source excerpt

ClickHouse handles 1.5B bird observations with ease. Alexey Milovidov shows how to go from raw data to interactive maps, with full pipeline and best practices.

## Supabase Edge Functions: Introducing Background Tasks, Ephemeral Storage, and WebSockets

DevFeed: [Supabase Edge Functions: Introducing Background Tasks, Ephemeral Storage, and WebSockets](<https://devfeed.tech/articles/supabase-edge-functions-introducing-background-tasks-ephemeral-storage-and-websockets-361.md>)

Original publisher: [Read original article](<https://supabase.com/blog/edge-functions-background-tasks-websockets>)

Author: Lakshan Perera; Nyannyacha

Published: 2024-12-03T07:00:00Z

Content type: release

Language: en

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

Topics: [Supabase](<https://devfeed.tech/topics/supabase.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [api](<https://devfeed.tech/tags/api.md>), [features](<https://devfeed.tech/tags/features.md>), [openai](<https://devfeed.tech/tags/openai.md>), [storage](<https://devfeed.tech/tags/storage.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [websocket](<https://devfeed.tech/tags/websocket.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

Supabase announces Background Tasks, Ephemeral File Storage, and WebSockets for Edge Functions. The article explains how these features support long-running workloads, temporary-file processing, zip extraction, streaming uploads, and authenticated relays to the OpenAI Realtime API.

### Source excerpt

Edge functions can be used for workloads outside the request-response lifecycle

## Getting Started With ESP-IDF

DevFeed: [Getting Started With ESP-IDF](<https://devfeed.tech/articles/getting-started-with-esp-idf-13879.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/getting-started-with-esp-idf/>)

Author: John Lee

Published: 2024-07-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [ESP32-C3](<https://devfeed.tech/topics/esp32-c3.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [SOC](<https://devfeed.tech/topics/soc.md>), [C](<https://devfeed.tech/topics/c.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [application-development](<https://devfeed.tech/tags/application-development.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [development-board](<https://devfeed.tech/tags/development-board.md>), [download](<https://devfeed.tech/tags/download.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32-c3](<https://devfeed.tech/tags/esp32-c3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [install](<https://devfeed.tech/tags/install.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [learning](<https://devfeed.tech/tags/learning.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>), [usb](<https://devfeed.tech/tags/usb.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This tutorial introduces ESP-IDF application development on an Espressif ESP32-C3-DevKitM-1 board. It explains the framework and requirements, then begins a step-by-step setup guide covering drivers, USB connection, and Windows driver installation.

### Source excerpt

Learning Objectives# This tutorial is an introduction to how to develop applications with ESP-IDF and an Espressif development board, in our case ESP32-C3-DevKitM-1. By the end of this tutorial, we will be able to: - Have general understanding of how ESP-IDF works - Able to set up ESP-IDF - Able to run a simple program on an Espressif SoC Recommended prerequisite# This tutorial serves as the foundation of all the other tutorials using Espressif SoCs, such as the ESP32, hence no prerequisite...

## Integrating Alarm Systems with Homekit

DevFeed: [Integrating Alarm Systems with Homekit](<https://devfeed.tech/articles/integrating-alarm-systems-with-homekit-37776.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/homekit-alarms/>)

Author: Carlos Alexandro Becker

Published: 2023-11-04T00:00:00Z

Content type: article

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Homekit](<https://devfeed.tech/topics/homekit.md>), [API](<https://devfeed.tech/topics/api.md>), [App](<https://devfeed.tech/topics/app.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Chat Bot](<https://devfeed.tech/topics/chatbot.md>), [Zip](<https://devfeed.tech/topics/zip.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [app](<https://devfeed.tech/tags/app.md>), [chat](<https://devfeed.tech/tags/chat.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [homekit](<https://devfeed.tech/tags/homekit.md>), [integration](<https://devfeed.tech/tags/integration.md>), [password](<https://devfeed.tech/tags/password.md>), [whatsapp](<https://devfeed.tech/tags/whatsapp.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This post documents the author's effort to integrate an Intelbras AMT8000 alarm system with HomeKit after finding the vendor's apps unreliable and difficult to integrate. It describes obtaining the API documentation through Intelbras support and receiving a ZIP archive containing spreadsheets, text files, and Java and C# files.

### Source excerpt

This post documents my journey implementing a Homekit integration for my Intelbras AMT8000 alarm system.

## Better VSCode Support for Maven Projects

DevFeed: [Better VSCode Support for Maven Projects](<https://devfeed.tech/articles/better-vscode-support-for-maven-projects-19215.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/better-vscode-support-for-maven-projects/>)

Author: Steve Hannah

Published: 2022-03-11T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Maven](<https://devfeed.tech/topics/maven.md>), [Visual Studio Code](<https://devfeed.tech/topics/visual-studio-code.md>), [Dependency management](<https://devfeed.tech/topics/dependency-management.md>), [Java](<https://devfeed.tech/topics/java.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Template](<https://devfeed.tech/topics/template.md>), [Zip](<https://devfeed.tech/topics/zip.md>)

Tags: [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-management](<https://devfeed.tech/tags/dependency-management.md>), [ide](<https://devfeed.tech/tags/ide.md>), [java](<https://devfeed.tech/tags/java.md>), [project](<https://devfeed.tech/tags/project.md>), [vscode](<https://devfeed.tech/tags/vscode.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This tutorial explains improved VSCode integration for Codename One Maven projects in application archetype 7.0.59. It covers creating and opening a project in VSCode and running it in the Codename One simulator through the Maven favorites menu, because the VSCode Run button does not yet work for that purpose.

### Source excerpt

Our next update to the Codename One application archetype (7.0.59) includes some VSCode-specific config files to help improve integration for Maven Projects.

## Distributing Adobe Acrobat DC with Microsoft Intune and Endpoint Manager

DevFeed: [Distributing Adobe Acrobat DC with Microsoft Intune and Endpoint Manager](<https://devfeed.tech/articles/distributing-adobe-acrobat-dc-with-microsoft-intune-and-endpoint-manager-29333.md>)

Original publisher: [Read original article](<https://www.schakko.de/2021/12/07/distributing-adobe-acrobat-dc-with-microsoft-intune-and-endpoint-manager/>)

Author: Schakko

Published: 2021-12-07T11:18:34Z

Content type: tutorial

Language: en

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

Topics: [Deployment](<https://devfeed.tech/topics/deployment.md>), [Microsoft](<https://devfeed.tech/topics/microsoft.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>)

Tags: [adobe](<https://devfeed.tech/tags/adobe.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [installation](<https://devfeed.tech/tags/installation.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [patches](<https://devfeed.tech/tags/patches.md>), [win32](<https://devfeed.tech/tags/win32.md>), [windows](<https://devfeed.tech/tags/windows.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

A tutorial explaining how to package and deploy Adobe Acrobat DC to notebooks managed with Microsoft Intune and Microsoft Endpoint Manager. It covers obtaining the installer and patches, customizing the installation, converting it to an .intunewin package, and configuring the Windows application in Endpoint Manager.

### Source excerpt

Lately, I had been asked to help out with the deployment Adobe Acrobat DC to Microsoft Intune-managed notebooks. Getting out of my system design/software architecture bubble turned out to be an interesting experience. First of all some background: All notebooks are managed by Microsoft Intune through the Microsoft Endpoint Manager. [...] The post Distributing Adobe Acrobat DC with Microsoft Intune and Endpoint Manager appeared first on schakko.de.

## Migrating Your Project to Maven

DevFeed: [Migrating Your Project to Maven](<https://devfeed.tech/articles/migrating-your-project-to-maven-19372.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/migrating-your-project-to-maven/>)

Author: Steve Hannah

Published: 2021-04-14T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Maven](<https://devfeed.tech/topics/maven.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Java](<https://devfeed.tech/topics/java.md>), [Maven Central](<https://devfeed.tech/topics/maven-central.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [build-tool](<https://devfeed.tech/tags/build-tool.md>), [java](<https://devfeed.tech/tags/java.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [migration](<https://devfeed.tech/tags/migration.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This tutorial explains how to migrate existing Codename One Ant application and library projects to Maven. It introduces the Codename One Migration tool, describes its Java 8 or later requirement and lack of dependencies beyond Java, and outlines how to download and open it.

### Source excerpt

As you may know, we are moving to Maven for our build tool. As part of this transition, we are moving towards a single Maven project structure, and away from separate structures for each IDE. This will be easier to maintain, and will also make it easier to collaborate on projects with other developers who use a different IDE (or no IDE at all).

## February 2021 round-up

DevFeed: [February 2021 round-up](<https://devfeed.tech/articles/february-2021-round-up-32471.md>)

Original publisher: [Read original article](<https://mobile.nixos.org/news/2021-03-02-february-2021-round-up.html>)

Author: Samuel Dionne-Riel

Published: 2021-03-02T00:00:00Z

Content type: news

Language: en

Sources: [Mobile NixOS news](<https://devfeed.tech/sources/mobile-nixos-news.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Cross-Compilation](<https://devfeed.tech/topics/cross-compilation.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [Android](<https://devfeed.tech/topics/android.md>), [boot](<https://devfeed.tech/topics/boot.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [boot](<https://devfeed.tech/tags/boot.md>), [cross-compilation](<https://devfeed.tech/tags/cross-compilation.md>), [flashing](<https://devfeed.tech/tags/flashing.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [update](<https://devfeed.tech/tags/update.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This fifteenth Mobile NixOS project update reports 18 merged pull requests and describes more hermetic evaluation without NIX_PATH, completed stage-0 boot features, restored armv7 support, and Android flashable ZIP support.

### Source excerpt

This update is the fifteenth in a series of regular updates on the state of the project. Only changes that have been accepted and merged in Mobile NixOS are chronicled here. There's always more work currently in-progress. Notable changes During the month 18 pull requests were merged. Compared to the last month, they're more subtle changes. More hermetic evaluation This started off the work from @eamsden, where uses of <nixpkgs> were removed almost everywhere in #238. With the changes, the value <nixpkgs> is now used only at one location, at the start of the evaluation, in a way that can be overridden easily if needed. This means that evaluation now works fine without a NIX_PATH. This is useful to allow users of Nix flakes to use the project. Similar changes were made in #310 to rely on a single <nixpkgs> value for release.nix and example configuration evaluations. Finalize stage-0 When #262 was merged in December, it was done so with two main features missing. Time was taken to finish the boot features for stage-0 in #300. When a device supports stage-0 boot, a new toggle is shown in the generations list allowing the user to skip rebooting into the generation's kernel. When booting a generation, the device tree built from the same kernel source tree is now used. The pull request itself contains technical details. This was less trivial than expected. armv7 works again Using armv7 with Nixpkgs or NixOS is not always easy. There is no binary cache, and cross-compilation is as YMMV as it is for AArch64. This is the reason why armv7 Mobile NixOS devices haven't seen much work done and things slowly started not working. With #306 time was taken to ensure contributors with armv7 devices wouldn't be left with hard to debug issues from Mobile NixOS itself. With this work finally taken care of, there is a recent known good starting point to use for armv7 devices. A few recent WIP device ports were made on top of these changes. Stay tuned as they may become supported devices a

## Loading Zip Codes with SmarterCSV Gem

DevFeed: [Loading Zip Codes with SmarterCSV Gem](<https://devfeed.tech/articles/loading-zip-codes-with-smartercsv-gem-28266.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/rails/2020/03/18/loading-zip-codes-with-smartercsv-gem.html>)

Author: Fuzzygroup

Published: 2020-03-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [CSV](<https://devfeed.tech/topics/csv.md>), [Code](<https://devfeed.tech/topics/code.md>), [import](<https://devfeed.tech/topics/import.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [covidnearme-org](<https://devfeed.tech/tags/covidnearme-org.md>), [csv](<https://devfeed.tech/tags/csv.md>), [data](<https://devfeed.tech/tags/data.md>), [import](<https://devfeed.tech/tags/import.md>), [rails](<https://devfeed.tech/tags/rails.md>), [rake](<https://devfeed.tech/tags/rake.md>), [trace](<https://devfeed.tech/tags/trace.md>), [transformation](<https://devfeed.tech/tags/transformation.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

A Rails example shows how to load U.S. ZIP code data with the SmarterCSV gem while preserving leading zeros. It uses a rake task and excludes the ZIP field from numeric conversion because the documented transformation did not work as expected.

### Source excerpt

Zip code data is always problematic due to the leading zeros. The smarter_csv gem in Rails defaults to automatically handling numbers as numerics, not strings, which means that you lose 00408 to just 408. Here's an example of a work around using a rake task to load data: # bundle exec rake data:import_geography --trace task :import_geography => :environment do path = File.join(Rails.root, 'lib/tasks/data/', 'Geocodes_USA_with_Counties.csv') geographies = SmarterCSV.process(path, { hash_transformations: [ :convert_values_to_numeric_unless_leading_zeros], convert_values_to_numeric: { except: [:zip] }} ) geographies.each do |g| g_obj = Geography.find_or_create(g) end end Note: This wasn't the accepted work around but a hack; sigh. The :convert_values_to_numeric_unless_leading_zeros transformation doesn't seem work. Issue filed; I hope to fix this myself down the road.

## Mobile Tophatting at Shopify

DevFeed: [Mobile Tophatting at Shopify](<https://devfeed.tech/articles/mobile-tophatting-at-shopify-1498.md>)

Original publisher: [Read original article](<https://shopify.engineering/mobile-tophatting-at-shopify-1>)

Author: Pedro Piñera

Published: 2018-09-11T18:00:00Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [API](<https://devfeed.tech/topics/api.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [android-studio](<https://devfeed.tech/tags/android-studio.md>), [api](<https://devfeed.tech/tags/api.md>), [cache](<https://devfeed.tech/tags/cache.md>), [code-review](<https://devfeed.tech/tags/code-review.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [git](<https://devfeed.tech/tags/git.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [testing](<https://devfeed.tech/tags/testing.md>), [xcode](<https://devfeed.tech/tags/xcode.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

Shopify describes a frictionless mobile tophatting process for testing pull request changes before they are merged. Because mobile branch changes can invalidate caches and trigger lengthy Xcode or Android Studio builds, Shopify reuses app binaries built by CI, exports them through the project pipeline, and makes them available through the CI API.

### Source excerpt

At Shopify, the leading cloud-based, multi-channel commerce platform for 600,000+ merchants in over 175 countries, it's crucial to test and verify the functionality of the new features that get introduced in the platform. Since the company doesn't have a QA team by design, testing features is the developer's responsibility.

## Upgrading to Eclipse Photon

DevFeed: [Upgrading to Eclipse Photon](<https://devfeed.tech/articles/upgrading-to-eclipse-photon-22000.md>)

Original publisher: [Read original article](<http://blog.joda.org/2018/07/upgrading-to-eclipse-photon.html>)

Author: Stephen Colebourne (noreply@blogger.com)

Published: 2018-07-09T09:51:00Z

Content type: tutorial

Language: en

Sources: [Stephen Colebourne](<https://devfeed.tech/sources/stephen-colebourne.md>)

Topics: [ide](<https://devfeed.tech/topics/ide.md>), [Java](<https://devfeed.tech/topics/java.md>), [Java 9](<https://devfeed.tech/topics/java-9.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [Code review](<https://devfeed.tech/topics/code-review.md>), [Test coverage](<https://devfeed.tech/topics/coverage.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [code-coverage](<https://devfeed.tech/tags/code-coverage.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [eclipse](<https://devfeed.tech/tags/eclipse.md>), [github](<https://devfeed.tech/tags/github.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ide](<https://devfeed.tech/tags/ide.md>), [install](<https://devfeed.tech/tags/install.md>), [installations](<https://devfeed.tech/tags/installations.md>), [java](<https://devfeed.tech/tags/java.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [maven-plugin](<https://devfeed.tech/tags/maven-plugin.md>), [modules](<https://devfeed.tech/tags/modules.md>), [plugins](<https://devfeed.tech/tags/plugins.md>), [update](<https://devfeed.tech/tags/update.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

A personal guide to upgrading to Eclipse Photon, covering its improved separation of test and main classpaths, support for Java 9 modules and Java 10 local variable type inference, JUnit 5, and code coverage assistance. It also describes installation options and a locally built GEBIT fork of the m2e-code-quality plugin.

### Source excerpt

I use Eclipse as my Java IDE. And the new release, Photon is now out. Photon is a large release, with lots of new features. The most important is the separation of the test and main classpaths, which has always been a point of pain in the IDE. Now it just works as you would expect, and the Maven plugin M2E correctly sets it up: Note the darker colour of the src/test classpath elements. Support for Java 9 (modules) and Java 10 (local variable type inferenece) is also present, ready for Java 11 in September. You can also use JUnit 5. It even tries to help you reach 100% code coverage! All in all, I feel this is a release where upgrading will make a difference to everyday coding. I've upgraded my own Eclipse installations, and it all went pretty well. You can either start from a clean install (I prefer the basic IDE without plugins so I can choose which ones to add). Or you can add Photon as an update site, and let Eclipse update itself. One problem I had was the plugin that connects Maven (M2E) to Checkstyle (Eclipse-CS), known as m2e-code-quality. Fortunately, the team at GEBIT have been maintaining a fork of the original plugin. However, they don't release it in binary form. As such, I had to build the plugin locally (no big deal - its a simple build). To simplify the process however, I've created a repository on GitHub with my Eclipse setup files, and a binary zip of the GEBIT forked plugin. To use just the m2e-code-quality GEBIT fork, download the zip file and add it as an update site. Here are some instructions. Thank you Eclipse team for a great release! PS. I won't be answering "how to" questions about upgrading Eclipse or the eclipse-setup repository. There are plenty of other places to ask questions, such as Stack Overflow or the Eclipse Forums.

## RxJava vs. Kotlin Coroutines, a quick look

DevFeed: [RxJava vs. Kotlin Coroutines, a quick look](<https://devfeed.tech/articles/rxjava-vs-kotlin-coroutines-a-quick-look-24815.md>)

Original publisher: [Read original article](<https://akarnokd.blogspot.com/2017/09/rxjava-vs-kotlin-coroutines-quick-look.html>)

Author: David Karnok (noreply@blogger.com)

Published: 2017-09-05T15:11:00Z

Content type: comparison

Language: en

Sources: [Akarnokd - Advanced RxJava](<https://devfeed.tech/sources/akarnokd-advanced-rxjava.md>)

Topics: [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Usability](<https://devfeed.tech/topics/usability.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [blocking](<https://devfeed.tech/tags/blocking.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [code](<https://devfeed.tech/tags/code.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [main-thread](<https://devfeed.tech/tags/main-thread.md>), [programming](<https://devfeed.tech/tags/programming.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [reactive-programming](<https://devfeed.tech/tags/reactive-programming.md>), [retry](<https://devfeed.tech/tags/retry.md>), [runblocking](<https://devfeed.tech/tags/runblocking.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [suspend](<https://devfeed.tech/tags/suspend.md>), [thread](<https://devfeed.tech/tags/thread.md>), [timeout](<https://devfeed.tech/tags/timeout.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This article compares RxJava and Kotlin Coroutines through an example involving delayed unreliable services, timeouts, cancellation, retries, and combining results. It emphasizes usability over raw performance and describes coroutine code as more sequential and synchronous-looking, while noting that coroutines were experimental at the time.

### Source excerpt

Introduction Does Kotlin Coroutines make RxJava and reactive programming obsolete? The answer depends on who you ask. Enthusiasts and marketing departments would say yes without hesitation. If so, sooner or later developers would have to convert Rx code into coroutines or write something with coroutines from the start. Since Coroutines are currently experimental, there is always the prospect deficiencies, especially regarding the overhead, will be resolved eventually. Therefore, this post will focus more on usability than raw performance. The scenario Let's say we have two functions imitating unreliable service: f1 and f2, both returning a number after some delay. We have to call these services, sum up their returned values and present it to the user. However, if this doesn't happen within 500 milliseconds, we don't expect it to happen reasonably faster, thus we'd like to cancel and retry the two services for a limited amount of time before giving up after some number of retries. The Coroutine Way Programming via coroutines feels like programming with the traditional ExecutorService- and Future-based toolset with the difference that the underlying infrastructure will use suspension, state machine(s) and task rescheduling instead of blocking a thread. First, we need the functions that exhibit the delaying behavior: suspend fun f1(i: Int) { Thread.sleep(if (i != 2) 2000L else 200L) return 1; } suspend fun f2(i: Int) { Thread.sleep(if (i != 2) 2000L else 200L) return 2; } Functions that participate in a coroutine execution should be declared with the suspend keyword and executed within a coroutine context. For demonstration purposes, the logic will sleep for 2 seconds if the parameter supplied to the functions is not 2. This will give a chance to the timeout logic to kick in yet the 3rd attempt to succeed before the timeout. Since going asynchronous usually ends up leaving the main thread, we need a way to block it until the business logic completes before letting the

## TIP: Using Git for Codename One Projects

DevFeed: [TIP: Using Git for Codename One Projects](<https://devfeed.tech/articles/tip-using-git-for-codename-one-projects-19610.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/tip-using-git-for-codename-one-projects/>)

Author: Shai Almog

Published: 2017-07-02T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Git](<https://devfeed.tech/topics/git.md>)

Tags: [binaries](<https://devfeed.tech/tags/binaries.md>), [course](<https://devfeed.tech/tags/course.md>), [files](<https://devfeed.tech/tags/files.md>), [git](<https://devfeed.tech/tags/git.md>), [github](<https://devfeed.tech/tags/github.md>), [scope](<https://devfeed.tech/tags/scope.md>), [zip](<https://devfeed.tech/tags/zip.md>)

### AI overview

This article discusses using Git for Codename One projects, focusing on repository migration, designing appropriate .gitignore files, handling binary cn1lib files, and preserving resource files in version history.

### Source excerpt

I wrote in the past about importing a Codename One demo from github but I left the whole working with git as an open subject. Mostly because I considered it a bit out of scope for the discussion. I have a section in the free online course about the anatomy of a Codename One application which I completely forgot to upload until I wrote this! If you want to understand more, I strongly suggest watching that as it explains a lot of the "why" and "how" logic of Codename One project structures. It explains the purpose of every file you see in the project...

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