Coder Social home page Coder Social logo

yaft's People

Contributors

plonk avatar saitoha avatar simon-i1-h avatar uobikiemukot 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  avatar  avatar  avatar  avatar

yaft's Issues

yaft locks console

installed yaft on arch. but each time i call yaft my system locks up and i have to reboot.
i've added my user to the video group, added exported FRAMEBUFFER=/dev/fb0 to my .bashrc file and installed FBV.

anything else i should be doing to get this working?
using kernel 5.0.2-arch1-1 and running arch in virtual machine
appreciate any advice. thanks

Keyboard does not work

I am trying to implement this in my image, I run the terminal from Emulationstation, and it displays fine, but they keyboard does not work :(

My keyboard works fine with other programs, its just YAFT.

If I run it from SSH the keyboard works, altho I get this message

WARN<< ioctl: VT_SETMODE failed (maybe here is not console)
WARN<< ioctl: KDSETMODE failed (maybe here is not console)

But I can use it and it kinda works, but if I try to run any program in the terminal I get an error that there was a problem opening the terminal "yaft-256colors" I am hoping this is because it is running from SSH.

Is there anything I need to setup to make YAFT recognize my keyboard? maybe an ENV ?

Page break (^L) doesn't clear terminal

When the page break character is sent to the terminal, the normal functionality is to push it all up past the top row. Linux's native console does this, if you want to test.
With yaft though, at least for me, it only goes up by a single row, like a few naive terminal emulators. Are there any plans to fix this?

Rotate screen

Hello I search a way to rotate the screen outside of xorg. I heard I can do that with a framebuffer terminal. Can I do that with yaft ? I need to, thanks.

Sixel detection

Hi! I'm the author of lsix and I received a bug report that my program doesn't work with yaft even though it should. It would appear to be a bug in yaft's response to the Send Device Attributes escape sequence. In particular, in response to ESC [ c, the response must include a '4' if sixel graphics are supported.

Here is a patch which fixes that.

diff --git a/ctrlseq/csi.h b/ctrlseq/csi.h
index 67fb245..b399516 100644
--- a/ctrlseq/csi.h
+++ b/ctrlseq/csi.h
@@ -398,7 +398,7 @@ void device_attribute(struct terminal_t *term, struct parm_t *parm)
 {
 	/* TODO: refer VT525 DA */
 	(void) parm;
-	ewrite(term->fd, "\033[?6c", 5); /* "I am a VT102" */
+	ewrite(term->fd, "\033[?6;4;c", 8); /* "I am a VT102" + SIXEL */
 }
 
 void set_mode(struct terminal_t *term, struct parm_t *parm)
diff --git a/ctrlseq/esc.h b/ctrlseq/esc.h
index 324b916..8dbad4d 100644
--- a/ctrlseq/esc.h
+++ b/ctrlseq/esc.h
@@ -75,7 +75,7 @@ void reverse_nl(struct terminal_t *term)
 
 void identify(struct terminal_t *term)
 {
-	ewrite(term->fd, "\033[?6c", 5); /* "I am a VT102" */
+	ewrite(term->fd, "\033[?6;4;c", 8); /* "I am a VT102" + SIXEL */
 }
 
 void enter_csi(struct terminal_t *term)

yaft becomes unusable after switching ttys

For example, if I launch X as normal on tty1 and then switch to tty2 and launch yaft. If I switch to tty1 and then back to tty2 (switch from yaft to X and then back), the screen is completely blank and I can do nothing except hit ^D to exit yaft which will take me back to getty.

Doing anything else causes nothing to be drawn to the screen.

RGB SGR sequences support (truecolor)

See https://gist.github.com/XVilka/8346728

  • 24bit true colour ("888" colours (aka 16 milion))
printf "\x1b[${bg};2;${red};${green};${blue}m\n"

The 256 colour palete is configured at start, and it's a 666 cube of
colours, each of them defined as a 24bit (888 rgb) colour.

This means that current support can only display 256 different colours
in the terminal, while truecolour means that you can display 16 milion
different colours at the same time.

Truecolour escape codes doesnt uses a colour palete. It just specifies the
colour itself.

Here's a test case:

printf "\x1b[38;2;255;100;0mTRUECOLOR\x1b[0m\n"
awk 'BEGIN{
    s="/\\/\\/\\/\\/\\"; s=s s s s s s s s;
    for (colnum = 0; colnum<77; colnum++) {
        r = 255-(colnum*255/76);
        g = (colnum*510/76);
        b = (colnum*255/76);
        if (g>255) g = 510-g;
        printf "\033[48;2;%d;%d;%dm", r,g,b;
        printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
        printf "%s\033[0m", substr(s,colnum+1,1);
    }
    printf "\n";
}'

Keep in mind that it is possible to use both ';' and ':' as parameters delimiter.

According to Wikipedia[1], this is only supported by xterm and konsole.

[1] https://en.wikipedia.org/wiki/ANSI_color

Currently, there is no support for the 24-bit colour descriptions in the terminfo/termcap database and utilites.
See the discussion thread here: https://lists.gnu.org/archive/html/bug-ncurses/2013-10/msg00007.html

Here are terminals discussions:

Now supporting truecolour

But there are bunch of libvte-based terminals for GTK2 so they are listed in the another section.

Also, while this one is not exactly a terminal, but a terminal replayer, it still worth mentioning:

Parsing ANSI colour sequences, but approximating them to 256 palette

Note about colour differences: a) RGB axes are not orthogonal, so you cannot use sqrt(R^2+G^2+B^2) formula, b) for colour differences there is more correct (but much more complex) CIEDE2000 formula (which may easily blow up performance if used blindly) [2].

[2] neovim/neovim#793 (comment)

Terminal multiplexers

  • tmux - starting from version 2.2 (support since 427b820...)
  • screen - has support in 'master' branch, need to be enabled (see 'truecolor' option)
  • pymux - tmux clone in pure Python (to enable truecolour run pymux with --truecolor option)
  • dvtm - not yet supporting True Colour martanne/dvtm#10

NOT supporting truecolour

[3] You can download patched version here https://github.com/rdebath/PuTTY

[4] You can download patched version here https://github.com/halcy/PuTTY

Here are another console programs discussions:

Supporting True Colour:

Not supporting True Colour:

bi-width fonts

w3m sony.jp

The README states that multiple fonts can be used, but they must all be the same size. What's not mentioned is that if one uses a single font that is multiple sizes, yaft works correctly. [See example.]

biwidthfontexample

Here you can see I am editing a text file that has characters of different widths. I am using a bi-width font I downloaded from http://openlab.ring.gr.jp/efont/unicode/ called "b24.bdf". b24.bdf.gz

I suggest the README perhaps should mention the possibility of a using a bi-width font.

Also, it would be nice if mkfont_bdf would correctly merge two fonts (one narrow and one wide) into glyph.h. If that's not possible, please consider implementing an option like xterm has to specify a second font just for wide font characters.

Thank you.

Cyrillic characters are not displayed

Hi, thanks for making this great simple program freely available.
Here's the file that I use to test Cyrillic symbols display in terminals:

~: file fonttest.txt 
fonttest.txt: UTF-8 Unicode text
~: cat fonttest.txt 
а б в г д е ё ж з и к л м н о п р с т у ф х ц ч ш щ ъ ы ю я
А Б В Г Д Е Ё Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ю Я

a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

When I do cat fonttest.txt in plain linux console (tty) - all characters are displayed. In yaft, there are just empty spaces in place of Cyrillic characters:

~: cat fonttest.txt 



a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Cyrillic characters are also replaced with empty spaces in mutt and ranger. Here's my cmdline and /etc/vconsole.conf (in case it matters):

~: cat /etc/vconsole.conf 
KEYMAP=ruwin_cplk-UTF-8
FONT=ter-c18b
FONT_MAP=8859-5
~: cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-linux-zen root=UUID=<UUID> rw quiet video=DP-1:1920x1080@144 fbcon=map:10 fbcon=font:VGA8x8

yaft claims UTF-8 support on main page, so why are Cyrillic characters not displayed? Is additional configuration needed?

Why frame buffer?

Came across this while looking for sixel compatible terminals. Wanted to ask what does using a framebuffer entail in terms of performance, usability, speed, memory etc etc, the usual pros and cons

Changing background wallpaper with idump only changes fb0 when attempting to change for fb1

I'm using a Raspberry Pie 4 setup with both framebuffers enabled for hdmi outputs 1 & 2.
I've also remapped my ttys so that tty1 is set to fb0 and tty2 is set to fb1.

When running the following command in tty1 seems to work and background changes as expected.
$ idump /path/to/wallpaper.png; tput civis; YAFT="wall" FRAMEBUFFER="/dev/fb0" yaft

However when running this command in tty2 only tty1 background is changed.
$ idump /path/to/wallpaper.png; tput civis; YAFT="wall" FRAMEBUFFER="/dev/fb1" yaft

After running the command to change tty2\fb1 background then fb0 screen seems to start glitching also.

Strange behavior in Debian 10

I noticed that on my laptop running a 64-bit copy of Debian 10 the backspace key in yaftx physically deletes a character, but visually the character stays there and the cursor moves to the right instead. It doesn't happen on my older machine running a 32-bit copy of Debian 9.13.

example:

I wrote uname -a
I press backspace and then n
Debian 10 shows uname -a n (wrong)
Debian 9 shows uname -n (correct)

Is it possible to replace default getty with yaft?

I've trying to replace getty with yaft on ArchLinux and made such systemd service:
/usr/lib/systemd/system/[email protected]

[Unit]
Description=Yet Another Framebuffer Terminal on %I
Documentation=man:yaft(1)
After=systemd-user-sessions.service
After=plymouth-quit-wait.service
Before=getty.target
Conflicts=getty@%i.service
OnFailure=getty@%i.service
IgnoreOnIsolate=yes
ConditionPathExists=/dev/tty0

[Service]
ExecStart=/usr/bin/yaft
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes

[Install]
WantedBy=getty.target

and enable and start it by

sudo ln -sf /usr/lib/systemd/system/[email protected] /usr/lib/systemd/system/[email protected]
sudo systemctl start [email protected]
sudo systemctl status [email protected]

And I have such output

[email protected] - Yet Another Framebuffer Terminal on tty7
   Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2018-05-17 10:29:32 EEST; 4s ago
     Docs: man:yaft(1)
 Main PID: 9088 (yaft)
    Tasks: 2 (limit: 4915)
   Memory: 9.7M
   CGroup: /system.slice/system-yaftvt.slice/[email protected]
           ├─9088 /usr/bin/yaft
           └─9091 /bin/bash

мая 17 10:29:32 easysly-acer-v3 systemd[1]: Started Yet Another Framebuffer Terminal on tty7.
мая 17 10:29:32 easysly-acer-v3 bash[9088]: >>WARN<<        ioctl: VT_SETMODE failed (maybe here is not console)
мая 17 10:29:32 easysly-acer-v3 bash[9088]: >>WARN<<        ioctl: KDSETMODE failed (maybe here is not console)
мая 17 10:29:32 easysly-acer-v3 bash[9088]: >>ERROR<<        tcgetattr: Inappropriate ioctl for device
мая 17 10:29:32 easysly-acer-v3 bash[9088]: >>ERROR<<        write: Bad file descriptor

Is VT_CONTROL at conf.h resolve this if set it to false?

Japanese text rendering in web browser

This is an issue I ran into at the very beginning of installation. Yaft is compiled with the default milkjf font. Japanese texts are displayed correctly in the terminal itself. However, if I open a text-based web browser (in my case, Links), both Kanji and Hiragana are not rendered correctly. See the middle of the right pane. Left pane is the terminal for comparison. It seems that double width fonts are not handled correctly?

2018-04-19t21-53-10 02-00

The same with wqy-unibit.
2018-04-19t20-42-00 02-00

More confusingly is the fact that even in the same webpage, SOME of the Japanese texts are rendered correctly. See here

2018-04-19t20-40-45 02-00

BTW, what browser does developer use or would he recommend? I have been struggling to find a suitable web browser for a long long time, especially for non-graphical environment.

YAFT's terminfo reset should turn off sixel

Normally if one gets the terminal in a messed up state, a person can blindly type reset^J to fix the problem. This does not work in Yaft as it does not turn off sixel input when it gets a reset sequence.

For example, if someone accidentally writes a binary file to their screen and it contains the sequence ESC P, then YAFT will appear to lock up. Typing anything, even reset, has no effect.

One solution would be to add the ESC \ sequence to the terminfo reset string. However, it would be better if YAFT simply turned off Sixel input when it got the normal reset string.

By the way, in xterm, the clear screen escape sequence seems to also turn off sixel input. You can try this from the terminal:

echo $'\eP'
# now terminal appears frozen
clear             # Or press control-L
# now terminal works again

It would be nice if Yaft worked similarly.

gpm (General purpose mouse) doesn't seem to work in yaft

I'm using a Raspberry Pie 4 with latest stable release Bullseye Debian.

Running the gpm daemon in yaft doesn't show the mouse cursor. When you exit yaft the mouse cursor shows up and is able to move with the mouse. Could be a limitation with gpm?

The command I'm using is: gpm -m /dev/input/mice -t imps2

yaft always redraws the whole line across the screen, even in tmux

I'm implementing image preview for rover file browser using idump, want to run the whole thing in yaft + tmux. But it seems that yaft always tries to redraw the whole line, which also affects the image pane. A screenshot saves a thousand words, and here is the screencast.
https://vimeo.com/268868152

But I also notice that such cross pane interference only occurs when I idump some images. Normally, everything runs perfectly alright in yaft + tmux, each pane will refresh individually. Also, Linux console doesn't have this behavior.

Is it actually a bug, or it is a limitation of the current implementation?
Thank you.

customize size

I have a separate fb program which uses the last (single) column of pixels on the screen to display a battery percentage bar. When fb refreshes overwrites these pixels. Would it be possible to change somewhere in yaft to not write to these pixels and to only see the screen size as 1 pixel less in with?

Thanks!

yaft as a getty replacement

Is there a way to use yaft as a getty replacement?
Replacing "/sbin/getty" with "/usr/bin/yaft" inside /etc/inittab doesn't seem to work and "openvt yaft" ends up making the newly spawned vt unusable.

I'd like to play a video or display a small gif during the initial startup of my Debian system and then, once it's finished, switch to another tty.

Please help! if you not lose this project.

Hello!
Sorry for my English.
I compile yaft terminal for arm, android(not android version, i compile linux version)
Yaft work perfect, but i cant connect keyboard from /dev/input/event6 (it virtual framebuffer keyboard. keyboard work good). if i start keyboard in android terminal, android can use this keyboard(in settings keyboard display as hardware keyboard).
How connect keyboard to your terminal.

[Feature Request] Add line spacing

There are two motivations for me to request line spacing (or something looks like it):

  1. Current I am using unifont and the multi-line CJK fonts are crowded together.
    It will be better if I can add e.g. 2 pixels between lines.
  2. My screen resolution is 1920x1080, font size of 8x16 (the only size available in unifont) will leave a 8 pixel empty border at bottom. It does not look good, and even worse, sometimes this area won't get cleared for example viewing an image with fbv when using tmux.
    If I can change the line spacing, maybe I can adjust the screen to contain exact integer number of lines.

Scrolling

On the standard Linux terminal, you can scroll up and down with shift + page up / shift + page down; is this possible with YAFT at all?

execvp() trouble in the git version

Hi,

First of all, thanks for this great little program, it's awesome.

I think I found a bug in the git version (the 0.2.9 version is not affected).
I've tested this in qemu with FreeBSD and NetBSD guests (i386, no X, using the local fb console).
I'm not sure if this problem affects other platforms, but it probably does.
There was at least some Linux lockup issue which might be related.
In the BSD guests the symptom is that running "yaft" only briefly flashes the screen and nothing else happens.
Also, no 256 colors, printing out $TERM shows that it stayed the same etc.

I tested a few git versions and it seems this problem was introduced with commit b5904bb (dated 2018-04-29).
The commit adds some command line parsing and replaces a execl() call with a execvp() one.
Which is all fine and good, but in yaft.c (line 190 or so), the third argument to fork_and_exec() is "argv + 1" which
seems to be incorrect (should be just "argv" without the +1).

As to why, well, the man page of execvp() says:
"The first argument, by convention, should point to the filename associated with the file being executed."

But that "first argument" here refers to the argument list (which is given as the second argument to execvp()).
So it's easy to get confused there.

I'm a bit baffled why this hasn't been reported before, as this bug has been in git for a couple of years already.
Everyone just happily using 0.2.9? OK yaft is in a specific niche, but still..

Not working with USB monitor with "udl" driver. Works only with older "udlfb" driver.

I have an USB monitor connected through USB 2.0. I can run yaft in the USB monitor by changing FRAMEBUFFER=/dev/fb1.

However, yaft get stucked if I use the "udl" driver instead of "udlfb" driver. With stucked I mean; running yaft, nothing shows up on the USB monitor. I have to use the older driver "udlfb" in order to run yaft on the USB monitor.

VT problem with mpv and links

I'm on Parabola (Arch). Links = this browser http://links.twibright.com/, it's in Arch repos.
In console:
Running mpv --gpu-context=drm video.mp4 and xlinks -g both work fine, without warnings.
In yaft:
Running mpv --gpu-context=drm video.mp4 prints out this warning (I can provide verbose log as well) but otherwise works fine:

[vo/gpu] VT_GETMODE failed: Inappropriate ioctl for device
[vo/gpu/opengl] Failed to set up VT switcher. Terminal switching will be unavailable.

When I tried xlinks -g first time it printed some warning about VT as well. Every time I tried after that it just completely locks up yaft - I can't switch to another TTY with Ctrl-Alt-Fx, Ctrl-C/Q/Esc doesn't work. The only way out is hard reset.

How to run yaft remotely, via SSH

Hi,

I can successfully run yaft in my local machine, but when I connect to that machine from another one via ssh and try to run yaft I get the following message:

WARN<< ioctl: VT_SETMODE failed (maybe here is not console)
WARN<< ioctl: KDSETMODE failed (maybe here is not console)

and nothing is displayed, I have to type "exit" to get back to the terminal.

Please help. Thank you in advance.

tmux shows strange characters (garbage) at startup when using yaft in linux console

I have been using yaft for years, with tmux on distro Arch.

Recent upgrade from tmux 3.3 to 3.4 has broken something: at every start of tmux I get weird characters (garbage) printing on screen when using yaft in linux console (no X11.)

I am trying to identify which of the changes is causing this so I can go back to updated tmux version 3.4 yet get rid of this weird character printing on screen issue. (I've downgraded back 3.3 for now.)

(Note: I tried a lot of different things [utf8, mouse, escape time, etc.] in tmux.conf file but none of it has an impact.)

This does not happen if I use tmux 3.4 in linux console without yaft -- so there is some breakage or changes introduced on the 3.3 to 3.4 upgrade here which yaft doesn't like.

It may be related to utf8 but can't figure it out. Maybe the deletion of the 0002-ncurses.patch?
Would appreciate some feedback if you can id or help me id the change breaking the combo yaft+tmux as described above.

“ERROR, "maybe overlapping" when using custom bdf fonts

I am really excited to get to know this piece of wonder. I have been looking for a terminal emulator without x, but with unicode and 256 color support for a long long time. ありがとうございます!

Playing with it since yesterday, I find it generally functioning very well. The only problem I ran into was icon and cjk font display. The only Chinese font I got to work correctly was the wenquanyi-unibit. However, if I generate a custom bdf by myself using pcf2bdf or ttf2bdf, it will produce the "ERROR maybe overlapping". I have tried NotoSansCJK SC, FontAwesome (for icons) and a bunch of other random fonts, the results were always the same.

Any suggestions of what might be the cause of the problem? Sorry that I am not a hard-core C programmer myself ...

BTW, the link to the dina font in glyph_builder.sh seems to be broken. Package not found. I don't know if it is just for me. Other fonts I have tried there so far worked pretty well.

Thank you.

How to shutdown from yaft?

This may sound stupid, but I sincerely want to get some suggestion for this problem.
Normally, when in Linux console, I would type something like sudo shutdown now to turn off my computer, and it will show a bunch of system messages, then shutdown.

In yaft, after I launch the shutdown command, nothing shows up. Maybe because those system messages are not printed to the framebuffer, which is in control by the current user? In fact, if I type sudo poweroff, the machine will actually turns off itself after a few seconds. So I can confirm it is at least doing something in the background. However, my current Gentoo machine has a strange behavior which will ask for root password one more time to enter maintenance mode after the shutdown command. Nevertheless, as I mentioned above, I can see none of this message in yaft. In fact, the machine just appears dead. I can't even switch to tty2-6. Every time I have to long press the power button to force shutdown.

Is such behavior normal / as expected? Should I write a shutdown script to first exit yaft and then shutdown? How the developer shutdown his machine?
Thank you.

[Discussion] How to copy and paste text

So, obviously, yaft runs without X. As a result, the typical selections that many linux users have come to expect (primary, secondary and tertiary/clipboard) are unavailable.

In searching what documentation I could find, I have yet to figure out how to easily copy and paste text since these selections are unavailable. Is there some method for doing this built in?

Sixel has debris

When showing sixel images, often the right side of the image will have extra data copied from other parts of the screen. This happens particularly when the terminal is scrolling.

Also, the left most column gets written with sixel data, but it does not scroll up. This may be a separate bug.

You can duplicate the problem by running the following script which draws some sixel lines.After the triangle should be a single vertical line six pixels high. On my yaft, I get a weird glyph, but I think it is random. Run the program a few times until it scrolls. Also try ls to put more text on the screen and watch how some of the letters get duplicated up after the sixel images.

#!/bin/bash

DCS=$'\eP'
P1="9"
P2=""
P3=""
ST=$'\e\\'
CR='$'
NL='-'

# Sixel data is character from ? (0x3F) to ~ (0x7E).
# Subtract 0x3F to get six-bit binary of six pixels in a vertical line.
# Least significant bit is at the top.

# For example,

#  • ? (hex 3F) represents the binary value 000000.
#  • T (hex 54) represents the binary value 010101.
#  • i (hex A2) represents the binary value 010101.
#  • t (hex 74) represents the binary value 110101.
#  • ~ (hex 7E) represents the binary value 111111.


printsixel() {
    # Given a sixel data string, send it to the terminal to show it.
    sixeldata="$1"
    echo -n "$DCS$P1;$P2;$P3;q$sixeldata$NL$ST"
}

binarytochar() {
    # Given six bits as 010101, return the sixel character to print them.
    y=$(echo "obase=16; ibase=2; $1+111111" | bc)
    x="$'\x"
    z="'"
    eval echo $x$y$z
}

# Print a checkerboard
odd=$(binarytochar 010101)
even=$(binarytochar 101010)

for ((i=10; i>0; i--)); do
    for ((j=0; j<i; j++)); do
	str=$str$odd$even
    done
    str=$str$NL
done

# A checkered triangle. This writes to left column of pixels in YAFT, which are buggy and don't scroll. 
printsixel $str

# A single vertical line; this repeats on the left side when scrolling.
printsixel '~'

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.