Giter VIP home page Giter VIP logo

halium-devices's Introduction

halium-devices

This is a collection of local manifests for halium supported devices, it also has a script, that will automatically configure repo to use a specific device manifest and check it out.

This repository is located at $REPO_ROOT/halium/devices.

Usage

  • ./setup <device codename>

You can set the number of parallel repo jobs by adding:

  • JOBS=<repo jobs> ./setup <device codename>

Alternatively you can also pass the device codename by environment variable:

  • DEVICE=<device codename> ./setup

Additional arguments to repo can be just appended to the command, e.g to do a force sync:

  • ./setup <device codename> --force-sync

halium-devices's People

Contributors

abhishek-mudgal avatar abkro avatar adazem009 avatar amartinz avatar apokorny avatar bitrvmpd avatar butterneck avatar danct12 avatar doniks avatar echosalik avatar flohack74 avatar fredldotme avatar herrie82 avatar jbruechert avatar jonnius avatar konradybcio avatar lnjx avatar lyuu17 avatar mariogrip avatar peat-psuwit avatar rogieroudshoorn avatar rupansh avatar s-8506 avatar sergobot avatar sjllls avatar stefanomelchior avatar tofee avatar tuxthepenguin0 avatar vanyasem avatar vince1171 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

halium-devices's Issues

Unable to sync Halium due to bad ref in GIT repository

When I executed :
repo sync -c -j 16

I got this error:

Syncing work tree: 51% (109/212)Traceback (most recent call last):
File "/media/data/memiks/halium/.repo/repo/main.py", line 547, in
_Main(sys.argv[1:])
File "/media/data/memiks/halium/.repo/repo/main.py", line 522, in _Main
result = repo._Run(argv) or 0
File "/media/data/memiks/halium/.repo/repo/main.py", line 184, in _Run
result = cmd.Execute(copts, cargs)
File "/media/data/memiks/halium/.repo/repo/subcmds/sync.py", line 855, in Execute
project.Sync_LocalHalf(syncbuf, force_sync=opt.force_sync)
File "/media/data/memiks/halium/.repo/repo/project.py", line 1419, in Sync_LocalHalf
lost = self._revlist(not_rev(revid), HEAD)
File "/media/data/memiks/halium/.repo/repo/project.py", line 2619, in _revlist
return self.work_git.rev_list(*a, **kw)
File "/media/data/memiks/halium/.repo/repo/project.py", line 2819, in rev_list
(self._project.name, str(args), p.stderr))
error.GitError: Halium/halium-devices rev-list ('^3207e2e110f9b99fb099cf13b3ab2daf422a6033', 'HEAD', '--'): fatal: bad object HEAD

Could you please help me how to fix this ?
BR,
Frederic.

Unable to detect/mount SDCARD

Halium 10
device Xiaomi Redmi Note 8 Pro ( Begonia )

  • Device wont mount sdcard, it should be mounted on /media/phablet/xxxx-xxxx
  • Wont detect or mount
  • This is a print of ciborium
    photo_2021-12-08_21-40-26

cat /proc/mounts

sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,nosuid,relatime,size=2507200k,nr_inodes=626800,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=562772k,nr_inodes=703462,mode=755 0 0
/dev/sdc46 /userdata ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/disk/by-partlabel/system / ext4 rw,relatime,data=ordered 0 0
/dev/loop0 /var/lib/lxc/android/rootfs ext4 ro,relatime 0 0
/dev/loop0 /android/system ext4 ro,relatime 0 0
/dev/loop0 /android ext4 ro,relatime 0 0
/dev/sdc46 /android/data ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=2813848k,nr_inodes=703462,mode=755 0 0
tmpfs /etc/fstab tmpfs rw,nosuid,noexec,relatime,size=2813848k,nr_inodes=703462,mode=755 0 0
/dev/sdc46 /android/cache ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/ureadahead ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
none /sys/fs/cgroup tmpfs rw,relatime,size=4k,nr_inodes=703462,mode=755 0 0
none /sys/fs/fuse/connections fusectl rw,relatime 0 0
none /sys/kernel/debug debugfs rw,relatime 0 0
none /sys/kernel/security securityfs rw,relatime 0 0
tmpfs /tmp tmpfs rw,relatime,size=2813848k,nr_inodes=703462 0 0
none /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k,nr_inodes=703462 0 0
none /run/shm tmpfs rw,nosuid,nodev,relatime,size=2813848k,nr_inodes=703462 0 0
none /run/user tmpfs rw,nosuid,nodev,noexec,relatime,size=102400k,nr_inodes=703462,mode=755 0 0
none /sys/fs/pstore pstore rw,relatime 0 0
/dev/sdc46 /etc/NetworkManager/system-connections ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /home ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
tmpfs /media tmpfs rw,relatime,size=2813848k,nr_inodes=703462 0 0
cgmfs /run/cgmanager/fs tmpfs rw,relatime,size=100k,nr_inodes=703462,mode=755 0 0
/dev/sdc46 /opt/click.ubuntu.com ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/AccountsService/users ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/aethercast ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/dbus ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/extrausers ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/logrotate ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/NetworkManager ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/ofono ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
tmpfs /var/lib/openvpn/chroot/tmp tmpfs rw,relatime,size=2813848k,nr_inodes=703462 0 0
/dev/sdc46 /var/lib/PackageKit ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/bluetooth ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/lightdm ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/lightdm-data ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
tmpfs /var/lib/sudo tmpfs rw,relatime,size=2813848k,nr_inodes=703462,mode=700 0 0
/dev/sdc46 /var/lib/system-image ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/systemd ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/upower ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/usermetrics ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/ubuntu-location-service ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/log ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /etc/default/ufw ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /etc/ufw ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /etc/apparmor.d/cache ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/cache/apparmor ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/apparmor ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /etc/ssh ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /etc/init/ssh.override ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /etc/writable ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/urfkill ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/misc ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /etc/network/if-up.d ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/sdc46 /var/lib/nfcd ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
none /dev/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset,clone_children 0 0
/dev/sdc39 /android/vendor ext4 ro,relatime 0 0
tmpfs /mnt/vendor tmpfs rw,relatime,size=2813848k,nr_inodes=703462 0 0
tmpfs /android/apex tmpfs rw,relatime,size=2813848k,nr_inodes=703462 0 0
/dev/loop0 /android/apex/com.android.runtime ext4 ro,relatime 0 0
/dev/sdc11 /mnt/vendor/protect_f ext4 rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered 0 0
/dev/sdc12 /mnt/vendor/protect_s ext4 rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered 0 0
/dev/sdc8 /mnt/vendor/nvdata ext4 rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered 0 0
/dev/sdc7 /mnt/vendor/nvcfg ext4 rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered 0 0
/dev/sdc10 /mnt/vendor/persist ext4 rw,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered 0 0
/dev/disk/by-partlabel/system /android/vendor/lib64/librilfusion.so ext4 ro,relatime,data=ordered 0 0
/dev/sdc46 /android/cache ext4 rw,relatime,discard,nodelalloc,resuid=10010,data=journal 0 0
/dev/loop0 /var/lib/lxc/android/rootfs/metadata ext4 ro,relatime 0 0
udev /usr/lib/aarch64-linux-gnu/qt5/plugins/mediaservice/libgstcamerabin.so devtmpfs rw,nosuid,relatime,size=2507200k,nr_inodes=626800,mode=755 0 0
tracefs /sys/kernel/debug/tracing tracefs rw,relatime 0 0
tmpfs /run/user/32011 tmpfs rw,nosuid,nodev,relatime,size=562772k,nr_inodes=703462,mode=700,uid=32011,gid=32011 0 0
none /sys/kernel/config configfs rw,relatime 0 0
adb /dev/usb-ffs/adb functionfs rw,relatime 0 0
tmpfs /run/user/0 tmpfs rw,nosuid,nodev,relatime,size=562772k,mode=700 0 0

df

Filesystem 1K-blocks Used Available Use% Mounted on
udev 2507200 1612 2505588 1% /dev
tmpfs 562772 944 561828 1% /run
/dev/sdc46 114935304 1823816 113078720 2% /userdata
/dev/disk/by-partlabel/system 2958224 2226820 561420 80% /
/dev/loop0 524032 495528 18012 97% /android
tmpfs 2813848 4 2813844 1% /etc/fstab
none 4 0 4 0% /sys/fs/cgroup
tmpfs 2813848 12 2813836 1% /tmp
none 5120 0 5120 0% /run/lock
none 2813848 184 2813664 1% /run/shm
none 102400 0 102400 0% /run/user
tmpfs 2813848 0 2813848 0% /media
cgmfs 100 0 100 0% /run/cgmanager/fs
tmpfs 2813848 0 2813848 0% /var/lib/openvpn/chroot/tmp
tmpfs 2813848 0 2813848 0% /var/lib/sudo
/dev/sdc39 1523628 887472 619772 59% /android/vendor
tmpfs 2813848 0 2813848 0% /mnt/vendor
tmpfs 2813848 0 2813848 0% /android/apex
/dev/sdc11 3824 116 3468 4% /mnt/vendor/protect_f
/dev/sdc12 3824 116 3468 4% /mnt/vendor/protect_s
/dev/sdc8 59376 5496 51920 10% /mnt/vendor/nvdata
/dev/sdc7 27632 188 26468 1% /mnt/vendor/nvcfg
/dev/sdc10 65792 124 63508 1% /mnt/vendor/persist
tmpfs 562772 48 562724 1% /run/user/32011
tmpfs 562772 0 562772 0% /run/user/0

parted

Number Start End Size File system Name Flags
1 32.8kB 67.1MB 67.1MB recovery msftdata
2 67.1MB 71.3MB 4194kB misc msftdata
3 71.3MB 71.9MB 524kB para msftdata
4 71.9MB 92.8MB 21.0MB expdb msftdata
5 92.8MB 93.9MB 1049kB frp msftdata
6 93.9MB 102MB 8389kB vbmeta msftdata
7 102MB 136MB 33.6MB ext4 nvcfg msftdata
8 136MB 203MB 67.1MB ext4 nvdata msftdata
9 203MB 236MB 33.6MB metadata msftdata
10 236MB 310MB 73.9MB ext4 persist msftdata
11 310MB 319MB 8389kB ext4 protect1 msftdata
12 319MB 327MB 8389kB ext4 protect2 msftdata
13 327MB 336MB 8389kB seccfg msftdata
14 336MB 386MB 50.3MB otp msftdata
15 386MB 388MB 2097kB sec1 msftdata
16 388MB 391MB 3146kB proinfo msftdata
17 391MB 392MB 524kB efuse msftdata
18 392MB 459MB 67.1MB nvram msftdata
19 459MB 616MB 157MB md1img msftdata
20 616MB 643MB 27.3MB boot_para msftdata
21 643MB 644MB 1049kB spmfw msftdata
22 644MB 649MB 4194kB audio_dsp msftdata
23 649MB 655MB 6291kB scp1 legacy_boot, msftdata
24 655MB 661MB 6291kB scp2 msftdata
25 661MB 662MB 1049kB sspm_1 legacy_boot, msftdata
26 662MB 663MB 1049kB sspm_2 msftdata
27 663MB 679MB 15.7MB cam_vpu1 msftdata
28 679MB 695MB 15.7MB cam_vpu2 msftdata
29 695MB 710MB 15.7MB cam_vpu3 msftdata
30 710MB 744MB 33.6MB gz1 legacy_boot, msftdata
31 744MB 778MB 33.6MB gz2 msftdata
32 778MB 780MB 2097kB lk legacy_boot, msftdata
33 780MB 782MB 2097kB lk2 msftdata
34 782MB 849MB 67.1MB boot msftdata
35 849MB 916MB 67.1MB logo msftdata
36 916MB 949MB 33.6MB dtbo msftdata
37 949MB 955MB 5243kB tee1 legacy_boot, msftdata
38 955MB 965MB 9961kB tee2 msftdata
39 965MB 2575MB 1611MB ext2 vendor msftdata
40 2575MB 6333MB 3758MB ext4 system msftdata
41 6333MB 6786MB 453MB ext4 cache msftdata
42 6786MB 6803MB 16.8MB gsort msftdata
43 6803MB 6820MB 16.8MB oem_misc1 msftdata
44 6820MB 6954MB 134MB exaid msftdata
45 6954MB 7827MB 872MB ext4 cust msftdata
46 7827MB 128GB 120GB ext4 userdata msftdata
47 128GB 128GB 16.8MB flashinfo msftdata

Error: Can't have a partition outside the disk!
Ignore/Cancel? Ignore
Error: Can't have a partition outside the disk!
Ignore/Cancel?
Ignore/Cancel? Cancel
Model: SD SU32G (sd/mmc)
Disk /dev/mmcblk0: 31.9GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:

FP2: Missing halium-7.1 branch on kernel repo

In the manifest it says to clone the halium-7.1 branch (by using the hal remote) from the repo, but it's not existing

<project path="kernel/fairphone/msm8974" name="z3ntu/android_kernel_fairphone_msm8974" remote="hal" />

Please fix that @z3ntu. ๐Ÿ˜ƒ

Can't build Halium for android_device_asus_msm8916-common

I'm trying to port Halium to Asus Zenfone 2 Laser (ZE500KL/Z00ED), wich is android_device_asus_msm8916-common. This means, the codename is msm8916-common. But, when I try to execute breakfast msm8916-common, I get an error like "Invalid variant 'common'". I tried to execute it with 'msm8916-common' and "msm8916-common" but it's still returning the same error. How can I "bypass" this?

Setup script fails creating correct makefiles

Hey,

I'm having issues running the setup script to create the file $DEVICE-vendor-blobs.mk
I am using a device which has a device specific repo and a common repo.
Running the setup script results in the creation of a proper $DEVICE-vendor-blobs.mk which is immediately overwritten by a broken version of that file. (I could observe this by using >> instead of >)

The problematic piece of code seems to be in lines 104-123:

While VENDOR and DEVICE are exported (104, 105), the directory is changed to $DEVICE_COMMON_TREE (113). This causes the setup-makefiles.sh script from the repo (Asus Z00A) to create a file with the appropriate content for $DEVICE_COMMON_TREE, but the files goes erroneously to vendor/$VENDOR/$DEVICE (instead of the common vendor directory).
This eventually leads to the build failing. I can fix it by commenting out line 121.

halium-devices/setup

Lines 104 to 123 in 57d7390

export VENDOR
export DEVICE
DEVICE_COMMON_HOLDER=$DEVICE_COMMON
export DEVICE_COMMON=${DEVICE_COMMON:=$k}
PLATFORM_COMMON_HOLDER=$PLATFORM_COMMON
export PLATFORM_COMMON=${PLATFORM_COMMON:=$DEVICE_COMMON}
if [ -f $DEVICE_COMMON_TREE/setup-makefiles.sh ]; then
(
cd $DEVICE_COMMON_TREE
for l in $(find . -name "*proprietary-*.txt"); do
echo "I: Processing proprietary blob file: device/$VENDOR/$k/$l"
grep -r -v -E '(^.*\.{1}(jar|apk)[|]?.*)' $l >$l".tmp" && mv $l".tmp" $l
done
# Set executable bit, needed for some device trees
chmod +x ./setup-makefiles.sh
# Actually run the script
./setup-makefiles.sh
)
fi

Is this a compatibility issue between the halium setup script and the repo's script, or did I miss something out?

mka systemimage fails

Despite file wcnss_service being available in
/home/dedsec/HaliumProject/halium/vendor/xiaomi/proprietary/bin (https://ibb.co/Dgw8HFz)
build still fails with the following error:
System: Dell Inspiron 5458
Ram: 8GB
OS: Deepin 15.11 stable

dedsec@dedsec-PC:~/HaliumProject/halium/mer-kernel-check$ mka systemimage
make: Entering directory '/home/dedsec/HaliumProject/halium'
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=7.1.1
LINEAGE_VERSION=14.1-20191203-UNOFFICIAL-mido
TARGET_PRODUCT=lineage_mido
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm64
TARGET_ARCH_VARIANT=armv8-a
TARGET_CPU_VARIANT=generic
TARGET_2ND_ARCH=arm
TARGET_2ND_ARCH_VARIANT=armv7-a-neon
TARGET_2ND_CPU_VARIANT=cortex-a53
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.15.0-30deepin-generic-x86_64-with-Deepin-15.11-stable
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=NOF27B
OUT_DIR=/home/dedsec/HaliumProject/halium/out
============================================
Running kati to generate build-lineage_mido.ninja...
No need to regenerate ninja file
Starting build with ninja
ninja: Entering directory `.'
ninja: error: 'vendor/xiaomi/mido/proprietary/bin/wcnss_service', needed by '/home/dedsec/HaliumProject/halium/out/target/product/mido/system/bin/wcnss_service', missing and no known rule to make it
build/core/ninja.mk:151: recipe for target 'ninja_wrapper' failed
make: *** [ninja_wrapper] Error 1
make: Leaving directory '/home/dedsec/HaliumProject/halium'

#### make failed to build some targets (3 seconds) ####

dedsec@dedsec-PC:~/HaliumProject/halium/mer-kernel-check$ 

Halium on Samsung Galaxy Tab 2

When flashing halium.boot to the tab 2 (using heimdall as its size is too large to flash from twrp) and then booting, it goes to a "Power Reset or Unknown Upload mode"
Hybris-boot does work, I can ssh but no display and cannot get much info with it anyways :(
I got dmesg from hybris-recovery if that will give some clues - https://pastebin.ubuntu.com/p/QJQ8QgFKWm/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.