September 25, 2018

Hello (again) world! Our Weekly Recap

(Cool announcement buried below, like a prize in cereal.)

1. A goodly part of our Fellowship of Red Magicians ("rogues" would be more alliterative, but I don't think they qualify) are cloistered in the wilds of Idaho, casting spells and muttering arcana over Red with more far-flung fellows. Right now, @dockimbel, @qxtie, @PeterWAWood and @greggirwin are
working magic on Garbage Collection, which has now been merged into the master branch. Debugging was a big challenge, and writing tests equally so. There are many subtle details that may not be intuitive, like the fact that series values don't shrink when items are removed. As you use the GC version, don't be too hasty to file bug reports. Confirm via community chat that you understand the expected behavior.

2. In red/docs, we're fleshing out our translations and adding more documentation of datatypes. In red.specs, @meijeru has expanded his discussion of the existing repertoire of errors to include ways the user can define errors for themselves. Meanwhile, @tovim's latest Czech translations have been added (here, and here). And new descriptions of datatypes from @gltewalt have been placed here.

3. Your prize for reading down: We'll be at the Ethereum Devcon! See you in Prague, October 30 - November 2! Tickets were hard to come by, each wave selling out in less than a minute. We're excited to talk to core devs and tell them about Red/C3.

4. Regarding Issues, if you notice reproducible issues, please document them as thoroughly as possible on github. New issue #3541 was handled promptly by @dockimbel. #3536 observed that when 'make hash!' was applied to a value of which there were a very large number of looped interations, Red revs up the CPU usage and grinds away for quite a while before producing a result, so we've reviewed it and added it as a bug. Of interest also is #3530, in which @dsunanda observed some laggy movement when setting a panel as loose.

5. Answer our questions for the community, before it's too late! Go here. I'll be collating your responses this week. Thanks to everyone who's already added their voice, including @rebolek, @BeardPower, @dander, @codenoid, @ungaretti, a few guys named Alexander, and many more.

If I have missed something you'd like to know more about or if you have questions/concerns, please reach out to me: lucinda_red on twitter, or lucindamichele on most every other platform. Have a great week!

September 17, 2018

So much to say, so little time

We know everyone is anxious for the 0.6.4 release with garbage collection and it is close. A couple of changes are being wrapped up on the RED wallet and then the final nails will be hammered in on 0.6.4. Thanks to @bitbegin and @qtxie for all their work in those areas.

It's amazing to have @dockimbel walk you through a log analysis and how some debugging was done for GC, inner details of func spec caching, and preview some features in the new GUI console. Even better, he walked me through them in person. That's right, he and @qtxie are here in the U.S. for a deep dive of business and technical work. The days are long, and the coffee is flowing, but we are Red-powered.

Thanks to @lucindamichele for getting the news flowing regularly, and now on to her weekly report.

Last Week In Red


Tell us about yourself and what you'd like to see Red become! Over at https://gitter.im/red/red we have a few questions for you. They're also at the bottom of this message.

More of your input and questions go into documentation: this exchange on Gitter https://gitter.im/red/help?at=5b9813e5728ddf02829371bc prompted a further fleshing out of ways block elements can be accessed: (1) using slash and a numeric index; (2) treating the block as a key/value store (these in addition to originally defined comparative functions like `=, ==, <>, >, <, >=, &lt;=, =?`).

We also saw a number of fixes to the RED Wallet, making it even more stable and flexible in response to data entries. Transactions that are waiting in the pending pool can be edited with greater clarity and simplicity; the wallet now lets you review the amount and address of your transactions.

In Red's Garbage Collection, following the previous week's fixes, some new tests of object recycling were added.

The community project red.specs-public -- a guide to the syntax and semantics governing the language -- added the option to search the repository by datatype.

In his nimble diagramming tool, user @toomasv continues to expand its interactive capabilities, adding a layer for re-sizing of diagram data and further defining shapes.

And here are your questions, go answer them on Gitter, here:
https://gitter.im/red/red?at=5b9af21854587954f99bd32d

1) Do you consider yourself a programmer?
2) Do you consider yourself a software engineer?
3) Do you solve business problems with software?
4) What kind of problems do you solve?
5) What other languages have you used?
6) What is your favorite language, and why?
7) Is "progammer" or "developer" in your job title?
8) Do you think Red should be for "everyone" (e.g., like Visual Basic)?
9) Do you want to use Red for real work, or just fun?
10) What software do you pay for?

We've seen a lot of great responses so far, which tell us about how are people using Red, who they are, which will help us prioritize features. Keep 'em coming, and Happy Reducing!

September 10, 2018

A quick note, and recent updates

More to Come


It's been quiet here for a while, but busy as can be on the development and planning sides. We have new web sites ready to be filled with content, and all this blog content will transfer. On the PR side, Lucinda Knapp is helping us get organized, and get more regular announcements out. They'll be brief, recapping recent work and notes of interest from https://progress.red-lang.org/ as well as Gitter and other community channels.

We have a lot to talk about, and hope to do that soon. If we could just focus on development, things would be much easier. Our focus, as planned, is on the blockchain aspect and C3, but we still need to fill the gaps in the core to support that. And we have to build a business so it's sustainable. The token sale was a huge success but, in spite of that, we are subject/victim to crypto volatility. Do the math. Plans made in January had to be adjusted. Heck, plans made a week ago had to be adjusted. The token sale also came at a huge cost in other obligations. Things we might call distractions. It wasn't just "Here's a bunch of ETH, now go and do what you really want for a year." If only that were true.

There's a solid core team, support from about a dozen people in a semi-official capacity, and we have a great community. As an open source project, we live or die by that community. Otherwise we could just build what we want, and provide dev and consulting services around that. But we want to change the world. We want to help fix what is broken in software development, all while paying our own bills and eating regularly. To do that, we need you. Every little bit helps. While we need a couple more deep, experienced system-level coders (point them to us if you know any), almost anyone can contribute in some way. Reach out. Tell us what your skills are, what you're interested in, how you're using Red, or specific roadblocks you hit with it. "I need Full I/O" is not specific. 😶 Specific is important, because if you are trying to use it for something, that means you have needs and skills in that area. And you're probably not alone.

Our huge thanks to the community leaders, those working on tests and documentation, and experimental projects and research. There is a lot going on, and we're working hard to make things happen that are really worth announcing. 

Happy Reducing!

Last Week in Red


New and notable in Red development: Numerous fixes in garbage collection, addressing crashes both with the recycling of red-symbol, and on macOS after allocating virtual memory. Quick-test.r saw a change, adding a precall. On the Docs side, the percent! datatype was committed by @gltewalt,
applying percent! to typesets number! and scalar!, and it has been added to SUMMARY.adoc.

And among Red community projects, Gritter, a Red Gitter client, has seen feature updates including the mapping of antecendent post-time periods."Starting to be useful," writes @rebolek. In an update to the README.md of OTP/ssword, @planetsizecpu notes that the otp generator is dependent upon
user selected parameters for its strength, meaning it's on the user to determine how strong that password is.

June 11, 2018

RED Wallet: the tiny, simple, fast and secure wallet!

We are proud to announce the release of the first alpha of the RED Wallet, our secure wallet app for the Ethereum network! The source code was released more than two months ago, and since then, the wallet has been used daily by the Red Team and contributors. We are now providing prebuilt binaries for easier access by the general public. The RED Wallet is one of the most secure crypto-wallets in the world, as it requires a hardware key to run. The main features of the first alpha release are:

  • Secure ETH and RED token transactions.
  • Support for the world's leading hardware key: the Ledger Nano S.
  • HD derivation path support: access up to 50 public addresses with the same key.
  • Fast address loading.
  • Fast balance retrieval (thanks to nodes provided by the Red Foundation).
  • Fully open source on Github.
  • Runs on Windows 7/8/10 and macOS 10.1x.
  • Only 269 KB (on Windows), no installation, no setup, no external dependency!
  • Tiny wallet source code: ~500 LOC of Red (plus ~110 KB of Red libs).
  • Custom USB drivers for hardware keys, written in the Red/System DSL.
  • Easy binary checking service to verify that your wallet app is a legit one!
  • Source code under audit by third-party security experts.

The RED Wallet can only be used with a hardware key (currently only the Ledger Nano S, other models will be supported in the future). This provides the highest level of security you can currently have, as the private key is stored in a secure element inside the key, and never leaves it. Signing transactions is done by sending the data to the secure element, visually confirming the target address and amount to transfer. Then the secure element proceeds with the transaction signing inside the hardware key. Once your transaction is signed, it cannot be altered in any way. This means that the hardware key is the weak link of our wallet (after the user, of course 😉), rather than the wallet code itself. Even if the wallet app is compromised, the hardware key and visual checking, provide the ultimate protection. If the user verifies information correctly on signing, a compromised wallet app cannot route your tokens to a corrupted or incorrect target address.

Here is a video showing how the RED Wallet works: (shortly after posting the video, we realized a late edit duplicated a section of audio. We'll fix that as soon as we can.)


Download the RED Wallet application




Just click on the executable to run it (extract the .app file first on macOS), no installation or setup process required. Plug in your Ledger Nano S key and enjoy a smooth and simple experience!

We are looking to provide more options to retrieve the app such as Homebrew support on MacOS or chocolatey support on Windows.

For Linux, we have working USB drivers, but Red's GUI support (using a GTK backend) is not yet capable-enough to run the app. We are looking into a fallback command-line UI in future releases, which will allow easy transaction scripting from the shell or other apps.

If you want to check if your RED Wallet binary has been tampered with in any way, you can simply drag'n drop the wallet executable on our binary checking service. If it's legit, the screen will turn green. If it turns red with a warning message, please notify us on Gitter or Twitter at once.

Only download the RED Wallet app from this page, do not trust any other website for that.


Get a Ledger Nano S key

You can order a Ledger Nano S key from the Ledger site (or just click the image below):


We also plan, in the future, to offer a customized RED version of the Ledger Nano S key. Stay tuned!

NOTE: The RED token contract is not yet referenced by the Ethereum app in the Ledger Nano S key, so be careful with your transactions, as on-key visual checking won't work until Ledger adds RED token support (integration in the Ledger Ethereum app is pending). The address you see, until they update the Ethereum app with RED's information, won't match what you entered in the wallet UI (it will just show the RED token contract address every time). We'll announce as soon as they update the Ledger app.


A bit of history...

The RED Wallet app was part of our plan since last year, as one of the initial steps for introducing RED token use into the Red community. It will facilitate balance checking and transfers between community members, very few of whom have experience with crypto-currencies. It is meant to be very easy and safe to use. (as we have created in this first alpha). We may even integrate it into the Red console, via a console plugin extension.

Since having the first usable version of the wallet a couple of months ago, for internal use, we realized that such an app has great potential. Not just for showing off what can be achieved with Red, but to highlight in the market of wallet apps that we can have lighter, easier to use, and more secure alternatives.

Since then, we have brainstormed about many possible features that other wallets are not proposing, to improve usability, even a possible command-line version for CLI-only users.


Feature list for RED Wallet alpha 2
  • TREZOR hardware key support.
  • Batch processing of a list of transactions (can be imported from a CSV file).
  • Wider ERC-20 token support (using the MEW list).
  • Faster balance lookups (by parallelizing queries).
  • Simplified transaction fee selection.
  • Signed binaries for Windows (macOS binaries are signed already).

Feature list for RED Wallet alpha 3
  • New tab-oriented UI design.
  • Support for cancelling a transaction (Ethereum network).
  • Support for Infura or local nodes, in addition to the Red Foundation nodes.
  • BTC support.
  • ETC support.

Feature list for RED Wallet 1.0

This is our non-exhaustive wish-list for 1.0, we still need to consider the feasability and resources required to support all of those features, so some of them might get postponed to a post-1.0 version.
  • ENS support.
  • Custom HD derivation paths.
  • Linux support.
  • Android support.
  • Block explorer integration:
    • Follow transaction outcomes from the wallet itself.
    • List past transactions for any address.
  • Secure identification of a target address:
    • Contact management (encrypted on IPFS or Swarm)
    • Display identicons.
    • Custom handshake using micro-transactions
  • Command-line version with scripting abilities.
  • QR code generation for sharing your public addresses.
  • Multi-sig support (probably post 1.0).
  • An alternative flat UI skin.
  • A good name. 😄

We're noting these features here, rather than keeping them confidential, because we believe users will benefit if other wallets implement them as well. Helping people navigate the new world of crypto safely and securely is our goal.

If you have ideas about how to make the RED Wallet even better, you are welcome to join us on Gitter, to discuss it with the Red user community. If you want to report issues with the current wallet version, please fill a ticket on Github, or drop us a message on Gitter.

The RED Wallet application was made with ❤ by the Red Team. Enjoy! 😊


May 3, 2018

RED token listing

As you know already, the RED token (Red Community Token) has been listed on some exchanges (KKcoin, Xstar, ddex.io), so far using a RED/ETH pair, but those exchanges are small and do not provide a lot of liquidity.

We now have the opportunity to get the RED token listed on a bigger reputable exchange, Bibox, which ranks 17th on CoinMarketCap. In this case, listing approval is a crowd voting process, that will be used for the first time by Bibox. The voting process is described here. A few notable points:

  • Voters get their voting tokens back if the project they vote for does not get listed, so there is no risk for participating.
  • The Red team will reward voters with tokens (ratios to be announced on Telegram groups, see below).
  • There are 7 voting rounds over 7 days. The two projects with the highest number of votes in total at the end of last round, win and get listed.
  • The first voting round starts on May 2nd, the last voting round is on May 9th.

The Red team strongly believes that decentralized exchanges, like those based on the 0x protocol, are the future and will eventually replace most centralized exchanges. A 0x-powered decentralized exchange, DDEX, has already listed RED for some time. The Red team still recommends DDEX highly, as it is the simplest, and one of the most trustable exchanges we've come across so far (to use it you need either a hardware key like the Ledger Nano S, or at least Metamask installed). While not perfect, it improves security, and every little bit helps as the blockchain and crypto worlds work toward more security best practices.

We are pragmatic visionaries and, as the crypto-fans are currently, vastly focused on centralized exchanges, we believe that being listed on at least one big exchange would be, right now, useful for the whole Red community.

Every day we work hard to ensure that we are meeting the goals laid out in the whitepaper, both technically and from the crypto and business perspectives. Balancing the allocation of resources, human and otherwise, takes effort. We're making great technical progress, as many of you following us closely, know. The Foundation has also done a lot of work behind the scenes, in preparation for putting RED tokens into circulation in the community.

This new exchange listing will bring balance on the RED token side. That's important, because we also need to support those who supported us during the token sale. Getting a token accepted on a big exchange is a  complex and hard process, which often simply fails. We have put a lot of effort, time and energy into getting RED short-listed for the voting process on Bibox, and then mobilizing resources for maximizing our chances of success. If you think that RED tokens should be listed on a big exchange, you are welcome to join the Bibox users to vote for RED, and get some tokens rewarded for your help (for refunding your voting expenses). The rewarding information might be changing from day to day during the voting process, so you can get the latest info from our telegram groups in English and Chinese.

Thanks to all of you who are helping the RED ecosystem grow up!



April 4, 2018

Sneak peek at Red on Android

Here is a short overview of the implemented features so far for Red/View backend on Android:



The source code for that Android test app is available here.

Implemented features so far:
  • New java bridge for Android
  • Full set of Red/View widgets supported (some still require extra work)
  • Draw & Shape dialects fully supported
  • Compatibility with Android GUI themes
  • Device-independent coordinate system
  • Updated APK building toolchain for targeting API 23+ Android systems
  • Improved ARM backend, support for ARMv7+
  • Android OS support ranges from 5.0 to 8.1 (tested on a Pixel 2)

The new java bridge replaces the old prototype built a few years ago, the low-level JNI bridge has been kept as is. This new bridge is optimized for performance, and allows efficient bindings from Red/System to the Android API in Java.

Those features were implemented in about a month and half in August/September 2017. We have delayed the continuation of that work, as we need to focus our resources on higher priority tasks for now, like Red/C3 and full I/O support. Once 0.7.0 will be out, we should have some resources available to resume this work. As a reminder, the current work on Android is done in a private repository, in order to keep control over the communication about Red on Android, as we want to maximize the announcement effect on that very important milestone. This private repo will be opened to a group of selected developers in our community once we resume the work on it, in order to help with testing and fine-tuning.

About the Tiger demo, it's a Draw version of the famous SVG tiger. It has many complex shapes, so it is particularily intensive to render in realtime, as in the above animation. From what we have noticed so far, it is CPU-bound on most (if not all) Android devices, so the rendering speed varies according to your device raw performance. We did some simple benchmarks with raw Java 2D vector graphics using the same Android API as Draw, Java code performed only 12% faster than our Draw code. This is an excellent result at this point, and hints that we can achieve great performance for 2D rendering in future versions. Here is the same demo running on a Xiaomi Mi Mix, which has a bigger display and is quite faster than the Nexus 5 used in the first video:




Here is a non-exaustive list of features to add or issues to address in order to complete Android backend:
  • Font and Para objects support
  • Menus support
  • List widgets elements have fixed sizes so far
  • Text-list has fixed height
  • Area widget needs to be completed
  • User-defined list widget
  • Camera aspect ratio correction required
  • Camera control
  • Transition effects between panels
  • Fast 2D sprites and scrolling support (for 2D games)
  • Red GUI console support
  • Common hardware sensors support
  • Bluetooth support
  • QR code reading and generation library
  • Contacts database access
  • Intents access
  • Developer keys management
  • Permission system support
  • Extra application types support:
    • desktop widget
    • headless service
    • wearable
    • TV

We are really excited by how quickly and smoothly was this first part of the work achieved, so this bows well for the remaining parts. As you know, we have a very heavy schedule this year, so we really need the full support of the Red community, and beyond, in order to accomplish it all and finally make the tool we all dream about, come true!

March 27, 2018

Roadmap Updates

After our successful token sale, we are making some changes to our old Red development roadmap.

0.6.4 release

We are merging the 0.6.4 branch into master today. There are still some features to add and polish, so we plan to release it in about a week.

We are still considering a 0.6.5 milestone for swapping the REPL and the toolchain thus making the Red console the new Red executable. If we cannot fit the required changes for that into 0.6.4, we will insert a small extra milestone for that before releasing 0.7.0.

Full I/O milestone

This gets higher priority now, as we don't need to rush Android support anymore, given the new funds we have now. We can now proceed in a more logical order which will result in the Android release having much more complete support.

0.7.0 will focus on bringing the port! datatype and with it, async networking I/O and some basic protocols. Work will start on it right after 0.6.4 release. This also means that a 0.7.x could be turned into a 0.9 release, providing a first Red beta version and a shortened path to 1.0. That depends on decisions about incorporating the module system and/or concurrency support in 1.0, or in a later version. We hope to decide on that with the help of the Red user community, using the voting power granted by the RED token. ;-)

Android milestone

It is still a very important milestone for Red, even if the work on it has currently slowed due to the big blockchain-related wave of tasks. It is now scheduled to be a 0.7.x release. We should accelerate work on it once new developers have joined the team. A new blog article (later this week) will provide a sneak peek at Red's current Android capabilities and what is left to do in order to complete it.

Red/C3

We are still working on combining the Red core roadmap and the Red/C3 roadmap and allocating resources adequately on the different branches of the whole project. So far, the Red/C3 roadmap (as described in the whitepaper) remains unchanged.

The first milestone in the Red/C3 roadmap is:
Q1 2018:
  • Ethereum node wrapper for Red Dapps (alpha)
  • RED wallet Dapp (alpha)

We are glad to announce that we are finalizing those tasks, and will be releasing the wallet app (as alpha) next week! The wallet currently supports only the Nano Ledger S hardware key (no software keys support for now). More info about the wallet app in a blog post next week, including a list of all the features planned for the 1.0 wallet release.

For the Ethereum node wrapper, we have implemented a JSON-RPC library in Red, used by the wallet app. That library will be released alongside the wallet code. It only covers some basic features from the Ethereum node API for now. We plan to vastly extend the API coverage in subsequent versions. Once the 0.7.0 release is out, we could wrap that library code in an eth:// port and provide a nice, human-friendly interface for it. We believe that enabling an easy way to interact with the Ethereum blockchain (and some others later this year), will raise the interest of existing Red coders for the Ethereum ecosystem, and set a new standard for high-level scripting tasks for blockchains.

Last but not least, we are setting up an online Ethereum node, that will be controlled by the Red Foundation, as a backend for the wallet app (currently relying on Infura's nodes) and all future Red Dapps.

We are now preparing to start work on the Red/C3 compiler first alpha, which is planned for release in June. After that, during the summer, we will review the next steps in the roadmap and eventually adjust them according to the feedback from users, how fast we can move Red/C3 to a 1.0, and the state of needs in the crypto world by then.

Red/Pro

Huh...what? :-) Yes, you read it correctly, we, at Fullstack, are cooking a great new product for Red users which should be our first commercial product. At the moment, I am directing Fullstack's key resources to work solely on the open source Red and Red/C3. Work on Red/Pro is postponed to the second part of this year. There will be more info about what Red/Pro is in a future blog post. ;-)

Until then, you can help us test the new console and features of 0.6.4 before the new release, you are welcome to report issues in our red/red or red/bugs rooms on Gitter.

Cheers!
Fork me on GitHub