euterpea / hsom Goto Github PK
View Code? Open in Web Editor NEWSupporting Impelementation for Haskell School of Music
License: zlib License
Supporting Impelementation for Haskell School of Music
License: zlib License
_____ _ | ___| | | | |__ _ _| |_ ___ _ __ _ __ ___ __ _ | __| | | | __/ _ \ '__| '_ \ / _ \/ _` | | |__| |_| | || __/ | | |_) | __/ (_| | \____/\__,_|\__\___|_| | .__/ \___|\__,_| | | |_| Euterpea is a domain-specific language embedded in Haskell for computer music research, education, and development, providing both note-level and signal-level abstractions. It is a descendant of Haskore and HasSound, and is intended for both educational purposes as well as serious computer music applications. Euterpea is a wide-spectrum DSL, suitable for high-level music representation, algorithmic composition, and analysis; mid-level concepts such as MIDI; and low-level audio processing, sound synthesis, and instrument design. It also includes a "musical user interface," a set of computer-music specific GUI widgets such as keyboards, pushbuttons, sliders, and so on. The performance of Euterpea is intended to be as good as any other computer music language, with the goal of being able to develop real-time applications, using both MIDI and a high-performance back-end for real-time audio. See Liense for licensing information. Homepage: http://haskell.cs.yale.edu/ ============================ ==== Getting the Source ==== ============================ Currently (9/2/2015), the most up-to-date version of Euterpea is available through GitHub at: https://github.com/Euterpea/Euterpea We recommend checking out the master version, as it should always be kept stable. When we reach milestones, we will release stable versions to Hackage. ============================ ======= Installation ======= ============================ There is a stable version of Euterpea on Hackage, so one can easily install Euterpea with: cabal install euterpea For the most up to date version, install from source: 1) Clone the source from github git clone https://github.com/Euterpea/Euterpea 2) cd into the Euterpea directory cd Euterpea 3) install Euterpea with cabal cabal install --------- Windows ---------- There are currently no further steps or known issues installing on Windows. ---------- Linux ----------- You may require additional steps to get MIDI sound output working on Linux. First of all, we recommend using TiMidity (http://timidity.sourceforge.net/) and either Freepats (http://freepats.zenvoid.org/) or PersonalCopy (ftp://ftp.personalcopy.net/pub/Unison.sf2.gz) for MIDI support. Make sure timidity is properly depending on the PersonalCopy soundfont if you're using it. Make sure timidity is the default MIDI-Through port. The easiest way to do this is probably to remove the default dummy port: sudo rmmod snd_seq_dummy Then, while Euterpea programs are running, you must have timidity running in the background: timidity -iA -Os & --------- Mac OS X --------- Euterpea is known to work fine on OS X (including Mavericks) when used with GHC 7.8.3 & Haskell Platform 2014.2.0.0 or later. Once Euterpea is set up, you may require additional steps to get MIDI sound output working. Download SimpleSynth and open it before you run ghci. Itβs a software MIDI synthesizer that plays MIDI output through the speaker. With GHC 7.8.3 or later, to run the GUI examples in ghci reliably, you need to start gchi with -fno-ghci-sandbox, or set it within ghci as follows: ghci -fno-ghci-sandbox *: :set -fno-ghci-sandbox *: :m + Euterpea.Examples.MUI *: mui5 With older versions of GHC, you may need the ``EnableGUI trick''. See Euterpea/Examples/EnableGUI.hs for details. ------ Troubleshooting ----- If you get errors about packages not being installed, make sure that cabal binaries are in your `$PATH`. To add cabal binaries to your path first add export PATH=$HOME/.cabal/bin:$PATH to your .bashrc and then run source ~/.bashrc Now you should be able to successfully cabal install. ============================ ======= Building HSoM ====== ============================ This Euterpea distribution comes with the source code for the book: The Haskell School of Music, by Paul Hudak. Building the source into a PDF requires LaTeX as well as the package lhs2TeX. Information about LaTeX can be found at http://www.latex-project.org/ and information about lhs2TeX can be found at http://www.andres-loeh.de/lhs2tex/ As lhs2TeX is available on Hackage, it can be installed with cabal: cabal install lhs2tex Once these are ready, building the book can be achieved by running the batch script MakeTex.bat in the HSoM directory. This will compile the lhs files into tex files, the tex files to a dvi, the dvi into a ps, and finally the ps to a pdf. Note that the files of HSoM are Literate Haskell (lhs) files. As such, they can be run directly with GHC. However, the batch script MakeCode.bat will extract just the code. Although they can be regenerated, these extracted files are already included with the Euterpea distribution, and many are important files for the proper functioning of the library. ============================ ====== Getting Started ===== ============================ A good place to begin learning about Euterpea is from the text that accompanies this distribution: The Haskell School of Music, by Paul Hudak. The source files are available in the HSoM directory, and building them to a PDF is described above. Using Euterpea is generally as easy as adding import Euterpea to the imports of your Haskell program. However, for specific advanced uses, other specific imports can be appropriate. Lastly, the Euterpea.Examples subdirectory contains many examples of using Euterpea in practice. These examples are designed to showcase Euterpea's powers, but they may also be useful simply as a starting off point. ============================ ======== Information ======= ============================ Euterpea was created by: Paul Hudak <[email protected]>, Eric Cheng <[email protected]>, Hai (Paul) Liu <[email protected]> and is currently maintained by Paul Hudak <[email protected]>, Donya Quick <[email protected]>, Dan Winograd-Cort <[email protected]> This file was last modified on 9/2/2015 by Daniel Winograd-Cort
Using selectOutput in a MUI on some Macs with no available MIDI output devices can cause a non-exhaustive pattern matching error.
Temporary fix: make sure you have at least one MIDI output device like SimpleSynth running before you start a program using selectOutput.
An update to something in HSoM's chain of dependencies now yields this when trying to run any MUI.
GLUT Fatal Error: internal error: NSInternalInconsistencyException, reason: nextEventMatchingMask should only be called from the Main Thread!
This happens from both ghci (which has always been buggy with MUIs) and also compiled executables. I am currently looking into solutions.
I can't find this package available on hackage. I'm trying to install this.
src\Data\MarkovChain.hs:18:29: error:
Module Control.Monad.State' does not export
State(State)'
markov-chain versions after 0.0.2 will also not install.
Tested on Windows 10 and OSX 10.10.5
Hi i'm a beginner in haskell and i'm trying to install Euterpea and i got this error:
cabal install Euterpea
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: Euterpea-2.0.7 (user goal)
[__1] next goal: Euterpea:setup.Cabal (dependency of Euterpea)
[__1] rejecting: Euterpea:setup.Cabal-2.4.0.1/installed-2.4...,
Euterpea:setup.Cabal-3.0.0.0, Euterpea:setup.Cabal-2.4.1.0,
Euterpea:setup.Cabal-2.4.0.1, Euterpea:setup.Cabal-2.4.0.0 (conflict: Euterpea
=> Euterpea:setup.Cabal>=1.8 && <1.25)
[__1] rejecting: Euterpea:setup.Cabal-2.2.0.1, Euterpea:setup.Cabal-2.2.0.0,
Euterpea:setup.Cabal-2.0.1.1, Euterpea:setup.Cabal-2.0.1.0,
Euterpea:setup.Cabal-2.0.0.2, Euterpea:setup.Cabal-1.24.2.0,
Euterpea:setup.Cabal-1.24.0.0, Euterpea:setup.Cabal-1.22.8.0,
Euterpea:setup.Cabal-1.22.7.0, Euterpea:setup.Cabal-1.22.6.0,
Euterpea:setup.Cabal-1.22.5.0, Euterpea:setup.Cabal-1.22.4.0,
Euterpea:setup.Cabal-1.22.3.0, Euterpea:setup.Cabal-1.22.2.0,
Euterpea:setup.Cabal-1.22.1.1, Euterpea:setup.Cabal-1.22.1.0,
Euterpea:setup.Cabal-1.22.0.0, Euterpea:setup.Cabal-1.20.0.4,
Euterpea:setup.Cabal-1.20.0.3, Euterpea:setup.Cabal-1.20.0.2,
Euterpea:setup.Cabal-1.20.0.1, Euterpea:setup.Cabal-1.20.0.0,
Euterpea:setup.Cabal-1.18.1.7, Euterpea:setup.Cabal-1.18.1.6,
Euterpea:setup.Cabal-1.18.1.5, Euterpea:setup.Cabal-1.18.1.4,
Euterpea:setup.Cabal-1.18.1.3, Euterpea:setup.Cabal-1.18.1.2,
Euterpea:setup.Cabal-1.18.1.1, Euterpea:setup.Cabal-1.18.1,
Euterpea:setup.Cabal-1.18.0, Euterpea:setup.Cabal-1.16.0.3,
Euterpea:setup.Cabal-1.16.0.2, Euterpea:setup.Cabal-1.16.0.1,
Euterpea:setup.Cabal-1.16.0, Euterpea:setup.Cabal-1.14.0,
Euterpea:setup.Cabal-1.12.0, Euterpea:setup.Cabal-1.10.2.0,
Euterpea:setup.Cabal-1.10.1.0, Euterpea:setup.Cabal-1.10.0.0,
Euterpea:setup.Cabal-1.8.0.6, Euterpea:setup.Cabal-1.8.0.4,
Euterpea:setup.Cabal-1.8.0.2, Euterpea:setup.Cabal-1.6.0.3,
Euterpea:setup.Cabal-1.6.0.2, Euterpea:setup.Cabal-1.6.0.1,
Euterpea:setup.Cabal-1.4.0.2, Euterpea:setup.Cabal-1.4.0.1,
Euterpea:setup.Cabal-1.4.0.0, Euterpea:setup.Cabal-1.2.4.0,
Euterpea:setup.Cabal-1.2.3.0, Euterpea:setup.Cabal-1.2.2.0,
Euterpea:setup.Cabal-1.2.1, Euterpea:setup.Cabal-1.1.6,
Euterpea:setup.Cabal-1.24.1.0 (constraint from minimum version of Cabal used
by Setup.hs requires >=2.4)
[__1] fail (backjumping, conflict set: Euterpea, Euterpea:setup.Cabal)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: Euterpea:setup.Cabal, Euterpea
cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the cabal library
Markov chain library dependency will not build on GHC 8.
It seems that HSoM cannot be installed
$ cabal install
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: HSoM-1.0.0 (user goal)
trying: StateVar-1.1.0.4/installed-5dJ... (dependency of
GLUT-2.7.0.12/installed-KMb...)
next goal: heap (dependency of HSoM-1.0.0)
rejecting: heap-0.6.0/installed-52d... (conflict: HSoM => heap>=1.0 && <2.0)
trying: heap-1.0.3
next goal: Euterpea (dependency of HSoM-1.0.0)
rejecting: Euterpea-2.0.2/installed-H2X... (conflict: heap==1.0.3, Euterpea =>
heap==0.6.0/installed-52d...)
rejecting: Euterpea-2.0.2, Euterpea-2.0.1, Euterpea-2.0.0 (conflict: StateVar
=> stm==2.4.4.1/installed-JQn..., Euterpea => stm==2.4.2)
rejecting: Euterpea-1.1.1, Euterpea-1.1.0, Euterpea-1.0.0 (conflict: HSoM =>
Euterpea>=2.0)
Backjump limit reached (currently 2000, change with --max-backjumps or try to
run with --reorder-goals).
--
cabal-install version 1.24.0.2
compiled using version 1.24.2.0 of the Cabal library
The Glorious Glasgow Haskell Compilation System, version 8.0.2
OS: macOS Sierra 10.12.5
Haskell Platform: 8.0.2 Full
The Bifurcate
example from https://www.euterpea.com/compiling-to-executable/ throws the following error:
freeglut (Bifurcate): ERROR: Internal error <FBConfig with necessary capabilities not found> in function fgOpenWindow
ghc bifurcate -o Bifurcate
from a nix-shell
with the following packages in ghc's scope (ghc-pkg list
):
Cabal-3.4.1.0
Euterpea-2.0.7
GLURaw-2.0.0.5
GLUT-2.7.0.16
HCodecs-0.5.2
HSoM-1.0.0
ObjectName-1.1.0.2
OpenGL-3.0.3.0
OpenGLRaw-3.3.4.1
PortMidi-0.2.0.0
QuickCheck-2.14.2
StateVar-1.2.2
Stream-0.4.7.2
UISF-0.4.0.0
array-0.5.4.0
arrows-0.4.4.2
base-4.15.1.0
binary-0.8.8.0
bytestring-0.10.12.1
containers-0.6.4.1
deepseq-1.4.5.0
directory-1.3.6.2
exceptions-0.10.4
fail-4.9.0.0
filepath-1.4.2.1
fixed-0.3
ghc-9.0.2
ghc-bignum-1.1
ghc-boot-9.0.2
ghc-boot-th-9.0.2
ghc-compact-0.1.0.0
ghc-heap-9.0.2
ghc-prim-0.7.0
ghci-9.0.2
half-0.3.1
haskeline-0.8.2
heap-1.0.4
hpc-0.6.1.0
integer-gmp-1.1
lazysmallcheck-0.6
libiserv-9.0.2
markov-chain-0.0.3.4
mtl-2.2.2
parsec-3.1.14.0
pretty-1.1.3.6
process-1.6.13.2
pure-fft-0.2.0
random-1.2.1
rts-1.0.2
semigroups-0.19.2
splitmix-0.1.0.4
stm-2.5.0.0
template-haskell-2.17.0.0
terminfo-0.4.1.5
text-1.2.5.0
time-1.9.3
transformers-0.5.6.2
unix-2.7.2.2
xhtml-3000.2.2.1
System:
Kernel: 6.8.5-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=543c6354-5d39-4703-bb64-407600dc772d rw rootflags=subvol=@
quiet rd.udev.log_priority=3 vt.global_cursor_default=0
systemd.unified_cgroup_hierarchy=1
resume=UUID=65b1555e-e8e7-41cb-84a2-63265cdbd7db loglevel=3 threadirqs
sysrq_always_enabled=1 ibt=off
Desktop: KDE Plasma v: 6.0.3 tk: Qt v: N/A info: frameworks v: 6.1.0
wm: kwin_x11 with: krunner vt: 2 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop System: ASUS product: N/A v: N/A serial: <superuser required>
Mobo: ASUSTeK model: TUF GAMING B550M-PLUS (WI-FI) v: Rev X.0x
serial: <superuser required> part-nu: SKU uuid: <superuser required>
UEFI: American Megatrends v: 2423 date: 08/10/2021
Battery:
Device-1: hidpp_battery_0 model: Logitech MX Keys Wireless Keyboard
serial: <filter> charge: 55% (should be ignored) rechargeable: yes
status: discharging
Device-2: hidpp_battery_1 model: Logitech Wireless Mouse M325
serial: <filter> charge: 55% (should be ignored) rechargeable: yes
status: discharging
CPU:
Info: model: AMD Ryzen 5 5600X bits: 64 type: MT MCP arch: Zen 3+ gen: 4
level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)
model-id: 0x21 (33) stepping: 0 microcode: 0xA201016
Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
L3: 32 MiB desc: 1x32 MiB
Speed (MHz): avg: 3657 high: 3700 min/max: 2200/4650 boost: enabled
scaling: driver: acpi-cpufreq governor: performance cores: 1: 3700 2: 3700
3: 3597 4: 3700 5: 3600 6: 3599 7: 3590 8: 3700 9: 3700 10: 3700 11: 3598
12: 3700 bogomips: 88800
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities:
Type: gather_data_sampling status: Not affected
Type: itlb_multihit status: Not affected
Type: l1tf status: Not affected
Type: mds status: Not affected
Type: meltdown status: Not affected
Type: mmio_stale_data status: Not affected
Type: reg_file_data_sampling status: Not affected
Type: retbleed status: Not affected
Type: spec_rstack_overflow status: Vulnerable: Safe RET, no microcode
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
sanitization
Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; IBRS_FW;
STIBP: always-on; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not
affected
Type: srbds status: Not affected
Type: tsx_async_abort status: Not affected
Graphics:
Device-1: NVIDIA GP108 [GeForce GT 1030] vendor: ASUSTeK driver: nvidia
v: 550.67 alternate: nouveau,nvidia_drm non-free: 545.xx+ status: current
(as of 2024-04; EOL~2026-12-xx) arch: Pascal code: GP10x
process: TSMC 16nm built: 2016-2021 pcie: gen: 3 speed: 8 GT/s lanes: 4
bus-ID: 07:00.0 chip-ID: 10de:1d01 class-ID: 0300
Device-2: Logitech Webcam C270 driver: snd-usb-audio,uvcvideo type: USB
rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-2:2 chip-ID: 046d:0825
class-ID: 0102 serial: <filter>
Display: x11 server: X.Org v: 21.1.13 with: Xwayland v: 23.2.6
compositor: kwin_x11 driver: X: loaded: nvidia gpu: nvidia display-ID: :0
screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 81 s-size: 602x343mm (23.70x13.50")
s-diag: 693mm (27.28")
Monitor-1: Unknown-1 mapped: HDMI-0 res: 1920x1080 hz: 60 dpi: 82
size: 598x336mm (23.54x13.23") modes: 1024x768
API: EGL v: 1.5 hw: drv: nvidia platforms: device: 0 drv: nvidia device: 2
drv: swrast gbm: drv: kms_swrast surfaceless: drv: nvidia x11: drv: nvidia
inactive: wayland,device-1
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 550.67
glx-v: 1.4 direct-render: yes renderer: NVIDIA GeForce GT 1030/PCIe/SSE2
memory: 1.95 GiB
API: Vulkan v: 1.3.279 layers: 1 device: 0 type: discrete-gpu
name: NVIDIA GeForce GT 1030 driver: nvidia v: 550.67 device-ID: 10de:1d01
surfaces: xcb,xlib
Audio:
Device-1: NVIDIA GP108 High Definition Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s lanes: 4
bus-ID: 07:00.1 chip-ID: 10de:0fb8 class-ID: 0403
Device-2: AMD Starship/Matisse HD Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 09:00.4 chip-ID: 1022:1487 class-ID: 0403
Device-3: Logitech Webcam C270 driver: snd-usb-audio,uvcvideo type: USB
rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-2:2 chip-ID: 046d:0825
class-ID: 0102 serial: <filter>
Device-4: Yamaha Steinberg UR22 driver: snd-usb-audio type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-4:3 chip-ID: 0499:1509
class-ID: ff00
API: ALSA v: k6.8.5-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: PipeWire v: 1.0.4 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel pcie: gen: 2
speed: 5 GT/s lanes: 1 bus-ID: 05:00.0 chip-ID: 8086:2723 class-ID: 0280
IF: wlp5s0 state: up mac: <filter>
Device-2: Realtek RTL8125 2.5GbE vendor: ASUSTeK driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: f000 bus-ID: 06:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: enp6s0 state: down mac: <filter>
Info: services: NetworkManager, smbd, systemd-timesyncd, wpa_supplicant
Bluetooth:
Device-1: Intel AX200 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-5:2 chip-ID: 8087:0029
class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 1 state: up address: <filter> bt-v: 5.2
lmp-v: 11 status: discoverable: no pairing: no class-ID: 6c0104
Drives:
Local Storage: total: 1.14 TiB used: 921.34 GiB (79.1%)
SMART Message: Required tool smartctl not installed. Check --recommends
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Seagate
model: WDS250G3X0C-00SJG0 size: 232.89 GiB block-size: physical: 512 B
logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
fw-rev: 111110WD temp: 45.9 C scheme: GPT
ID-2: /dev/sda maj-min: 8:0 vendor: Seagate model: ST1000LM035-1RK172
size: 931.51 GiB block-size: physical: 4096 B logical: 512 B type: USB
rev: 3.0 spd: 5 Gb/s lanes: 1 mode: 3.2 gen-1x1 tech: HDD rpm: 5400
serial: <filter> fw-rev: 1053 scheme: MBR
Partition:
ID-1: / raw-size: 228.59 GiB size: 228.59 GiB (100.00%)
used: 112.4 GiB (49.2%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 580 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 228.59 GiB size: 228.59 GiB (100.00%)
used: 112.4 GiB (49.2%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
ID-4: /var/log raw-size: 228.59 GiB size: 228.59 GiB (100.00%)
used: 112.4 GiB (49.2%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
ID-5: /var/tmp raw-size: 228.59 GiB size: 228.59 GiB (100.00%)
used: 112.4 GiB (49.2%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 15.53 GiB used: 6.2 MiB (0.0%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 12 dev: /dev/zram0
ID-2: swap-2 type: partition size: 4 GiB used: 0 KiB (0.0%) priority: -2
dev: /dev/nvme0n1p2 maj-min: 259:2
Sensors:
System Temperatures: cpu: 47.0 C mobo: 42.0 C gpu: nvidia temp: 46 C
Fan Speeds (rpm): fan-1: 1183 fan-2: 1841 fan-3: 1230 fan-7: 0
Info:
Memory: total: 16 GiB available: 15.53 GiB used: 5 GiB (32.2%)
Processes: 402 Power: uptime: 6h 20m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 6.17 GiB services: org_kde_powerdevil,upowerd
Init: systemd v: 255 default: graphical tool: systemctl
Packages: 2068 pm: nix-default pkgs: 0 pm: nix-sys pkgs: 0 pm: nix-usr
pkgs: 12 libs: 3 pm: pacman pkgs: 2056 libs: 472 tools: aura,paru Compilers:
clang: 17.0.6 gcc: 13.2.1 Shell: fish v: 3.7.1 running-in: yakuake
inxi: 3.3.34
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.