Makepad questions
different level of Live DSLs
Which levels of Live DSL the live reload can apply?
Widget level - button
App level - Mobile, Desktop
App Root level - DesktopWindow, MultiWindows
Currently the live reload will be for the entire application. Rik is working on optimization of it. The previous live reload demo was a first-cut version which is being reworked.
Edward Tan changed 2 years agoView mode Like Bookmark
Person:
is iOS UIKIt programming imperative or delcarative?
ChatGPT:
UIKit programming for iOS is primarily imperative. The UIKit framework, which is a part of Apple's iOS SDK, enables developers to create and manage user interfaces using an object-oriented approach. This approach involves writing code that directly manipulates UI elements, such as creating instances of objects, setting properties, and responding to events or user interactions through various methods and functions.
However, with the introduction of SwiftUI in 2019, Apple has provided a more modern, declarative approach to creating user interfaces for iOS apps. SwiftUI allows developers to define the UI and its behavior using a simpler and more concise syntax, which automatically updates the UI when the underlying data changes. While SwiftUI is becoming more popular, UIKit remains relevant and is still widely used for building iOS applications.
Yue Chen changed 2 years agoEdit mode Like Bookmark
delcrative vs imperative
iOS UIKit vs SwiftUI
UIKit (Imperative Approach):
First, you would create a view controller, which is usually done using Interface Builder and a storyboard, or programmatically in a Swift file.
Here's how you might create a button programmatically in a UIViewController subclass:
import UIKit
class ViewController: UIViewController {
Yue Chen changed 2 years agoEdit mode Like Bookmark
Person:
How does iOS UIKit describe the UI widget and layout
ChatGPT:
UIKit is a framework in iOS that provides a set of tools, libraries, and user interface components for building graphical interfaces. It is the foundation for building UIs on iPhones, iPads, and other devices running iOS or iPadOS. UIKit offers a variety of UI widgets and layout systems for creating responsive and visually appealing user interfaces.
Here's a description of some UI widgets and layout systems provided by UIKit:
Yue Chen changed 2 years agoEdit mode Like Bookmark
yes because its an incremental immediate mode
So that means that you don't run the entire regenerate flow every frame
it is fairly optimal in that sense
It also has a texture cache for parts of the UI that might be static
I've been running makepad on a raspberry pi 4 which has about as much gpu as your thumbnail
and it works
Now do keep in mind tho that flutter is a project by hundreds of engineers funded by hundreds of millions
Makepad is 2 people and we are almost more ambitious because we are also building an IDE and designtool
So you should keep that in mind when trying to pit us 1:1 against flutter
Yue Chen changed 2 years agoView mode Like Bookmark
Does DART support M:N threading model?
No, Dart does not support M:N threading model.
Dart is designed to use a 1:1 threading model, which means that each isolate in a Dart program is associated with a single native operating system thread. When a Dart program creates a new isolate, the Dart runtime creates a new thread to handle that isolate's execution.
This design is intended to simplify the programming model for concurrency and parallelism in Dart, as it provides a consistent and predictable threading model that is similar to other programming languages like Java and C#. However, it does have some limitations in terms of scalability and performance, particularly in high-concurrency scenarios.
While Dart does not support an M:N threading model, it does provide a number of other tools for working with concurrency and parallelism, such as asynchronous programming using futures and streams, and the async and await keywords, which make it easy to write non-blocking code. Additionally, Dart provides support for isolates, which can be used to execute code concurrently and in parallel across multiple threads or even across multiple machines, using message passing to communicate between isolates.
In summary, while Dart does not support an M:N threading model, it provides a range of other tools and techniques for working with concurrency and parallelism that are well-suited for the language's design and goals.
Yue Chen changed 2 years agoView mode Like Bookmark
Retained Mode vs Immediate Mode
Retained mode and immediate mode are two different approaches to rendering user interfaces in computer graphics. Here are some key differences between the two:
Retained mode:
In retained mode rendering, a scene graph or object hierarchy is created to represent the UI elements and their properties, which are stored in memory. This scene graph is updated when the UI changes, and the graphics system uses this representation to redraw the UI as needed.
Retained mode rendering is often used in applications where the UI is expected to change frequently, as it allows for more efficient updates by only redrawing the parts of the UI that have changed.
Examples of retained mode rendering in UI frameworks include React Native, Jetpack Compose, and SwiftUI.
login to
https://accounts.testinnovators.com/interaction/qxrjTHv-NcBkkHk_k8Z-t/login
choose google login
choose sophie's google account (not saratogaudsd account)
Sophie Chen
ch26soph@gmail.com
Yue Chen changed 2 years agoView mode Like Bookmark
install github desktop version which is the easiest way to manage the project changes otherwise install the github toolchains
clone the repo
git clone https://github.com/ymote/ymote.github.io
cd ymote.github.io directory
change the Gemfile
uncomment the following line because it runs locally
Yue Chen changed 2 years agoView mode Like 1 Bookmark
计算处理器的发展有两种方式,第一种是延长线创新,在不改变计算架构的情况下,通过先进的3nm或更低线宽的半导体制程技术提升单位面积晶体管密度,获得性能或功耗的改善。另一种通过多核低功耗处理器、软件和芯片的协同设计和先进的供电、散热和芯粒封装等技术,进行计算架构的系统性创新,在制程技术不变的情况下,持续获得成本、性能和功耗的改善,这种由几十、上百个甚至上千个CPU、GPU和领域应用加速器组成的复杂芯片系统不仅用于终端设备,而且也会广泛应用于云计算、汽车、机器人和其他工业领域。为了更有效的使用这些异构并行芯片系统,软件系统必须提供更高的开发效率,更高的性能和良好的通用性。
而如下表所示,当前并行计算编程语言技术难以在上述三方面都达到最优(Michale Wong),而只能选择优化其中的两个属性。
(The landscape of Parallel Programming Models Part 1 - IXPUG,https://www.ixpug.org/resources/download/keynote-the-landscape-of-modern-parallel-programming-using-open-standards)
作为主力系统编程语言,C/C++ 语言选择了优化性能和通用性,但是难以像Python那样简单易用,而Python语言的能效比只能达到C/C++语言的1/75,参见下图。
Programming Language
Productivity
Performance
Yue Chen changed 3 years agoView mode Like 1 Bookmark