Git Product home page Git Product logo

ruby-kickstart's Introduction

Welcome to RubyKickstart!

RubyKickstart is an interactive guide to learning the Ruby programming language.

**Disclaimer - this is a shameless continuation of the original Ruby Kickstart by Josh Cheek. I have no intention of reinventing the wheel, and I gladly stand on the shoulder of giants :)

Our recommended guide to starting this project:

  • Fork this repo to your own Github
  • Clone it down to your local machine
  • Run bundle install (you may need an extra something to get this working ... )
  • Answer the first question (in the challenge section)
  • Commit through github and push it up to your repo
  • Send a pull request straight away (yes - after your first answer)
  • Answer the second question (in the challenge section)
  • Commit throught github and push it up to your repo

... the PR will automatically update itself!

The course consists of six sessions, all of which have common features:

Notes

Each session has a set of notes files, which are just simple Ruby programs that are heavily commented to walk you through the material of that session. You should go through this section first.

The first item in each section has a link to a video that you should watch as you go along. The notes are synched with the videos - try to keep up, and add your own notes for clarification wherever you need it.

Examples

Examples are sparse, to say the least. They're full Ruby programs that demonstrate the material taught in the notes.

You can run them on your own machine, and modify them to experiment with the ideas they demonstrate.

Once you've gone through the notes for a section, have a look and a play with the examples to check you fully understand what's going on.

PLEASE BE ENCOURAGED TO ADD AS MANY EXAMPLES AS YOU CAN!

Challenges

Challenges are found in each session, and you should try to tackle all of them BEFORE looking at any of the solutions. They provide fun programming exercises for you to work through, so you have something to work on that checks and develops your understanding of the session's information.

Challenges are taken from a few different places. Several are taken from different books, including the third edition of Absolute Java by Walter Savitch, and one was taken from Learn to Program by Chris Pine, a book to teach programming to absolute beginners, using Ruby.

The rest were spawned out of the brain of Mr Cheek himsef.

Don't forget to run rake <session_number>:<challenge_number> as you go along for feedback on whether your solutions are correct, and once you've got all your tests passing, you can compare your solution to the solutions in the 'solved' section (next)

If you have suggestions for further challenges, please create them and MAKE A PULL REQUEST!! :)

Please put your answers in the challenges section. After completing the first two chapters, submit a pull request and Travis CI will check everything for you.

Solved & Specs

Along with challenges, each session provides solutions to its challenges and a suite of automated tests you can use to test the correctness of your solutions.

Feel free to add your own alternative/improved solutions in this section and make a pull request to me. It would be cool to have dozens of solutions in every section so people can analyze all the different ways you can solve a problem and learn from them.

Cheatsheets

Although not part of the sessions, RubyKickstart has a number of cheatsheets which contain all the syntax for various topics. Some of the material in the cheatsheets is not covered in the notes or examples for sessions, so make sure you check out the cheatsheets before diving into the challenges.

It might also be worth printing out the cheatsheets and sticking them on your wall, or turning them into Anki / Memrise / Quizlet decks - if you do this, be sure to share the link with us so we can let all our students use them!

Sessions Overview

  • Chapter 1
    • Introduction
    • Arithmetic
    • Logic
    • String
    • Basic IO
  • Chapter 2
    • Arrays
    • Basic Classes
    • Singleton Classes
  • Chapter 3
    • Symbols
    • Hashes
    • Blocks / Procs
    • Method Parameters
  • Chapter 4
    • Boolean Return Values
    • Introspection / Reflection
    • Ranges
    • Simple File IO
    • Inheritance
    • Exceptions
  • Chatper 5
    • Modules
    • Regular Expressions
    • Ruby gems
  • Chapter 6
    • The Web
    • Sinatra
    • ERB
    • Rack
    • Git
    • Heroku

What you'll need to use it

To use RubyKickstart, you'll need several tools:

  • Ruby the happy programming language :)
  • Rake version 0.8.7+ see if you have it by typing "gem list" at the command line, we use it to apply the tests
  • RSpec version 2.0+ currently we use this for testing
  • git lets you download our changes without overwriting your work. Good installation instructions at (http://help.github.com/git-installation-redirect)
  • A text editor Our Recommendations:
    • Windows: SciTE should come with the one click installer
    • Linux: SciTE also works great on linux :)
    • Mac: Sublime Text 2 or Atom. Atom works straight away with Terminal and is growing in popularity. Sublime Text will need you to setup env variables to launch projects using the subl command.

Age

This is several years old now, but it was updated to RSpec 3 and cleaned it up a lot in December 2014. Everything should still work fine and be applicable.

There is now a Gemfile in the root, you can ignore it, it's mostly for letting me know what versions I last checked it against.

Quizzes

There used to be quizzes that were placed at the end of each section, and could be used to check that you'd retained all the information you'd just been taught. They're gone now... While I'll try to create them in the near future, if you fancy the challenge, feel free to jump in and make them on Memrise/Quizlet and send a link to [email protected]

That's it - enjoy the walkthrough!

ruby-kickstart's People

Contributors

jordanpoulton avatar kevinpmcc avatar nikeshashar avatar samover avatar spike01 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

Watchers

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

ruby-kickstart's Issues

File not found error when invoking command rake 1:all solved is true

The error I got:
rake 1:1 solved=true
ruby -c '/Users/wim/Projects/ruby-kickstart/session1/solved/1.rb'
ruby: No such file or directory -- /Users/wim/Projects/ruby-kickstart/session1/solved/1.rb (LoadError)
rake aborted!

Directory name is "solved" should be "5-solved", after I changed it, it worked fine. It is on line 64 of the Makefile.

Challenge 2:13 - self.var vs @var

Anyone who's done/looked at 2.13 able to offer some explanation for the use of self.var over @var in the last question? They both pass tests and so seem to be functionally identical and so I wanted to see if there was a reason why the author used self.var in this case or was it just a stylistic choice.

Here are a few links to explanations of the differences between self.var and @var:

http://stackoverflow.com/questions/12097726/ruby-classes-initialize-self-vs-variable
http://stackoverflow.com/questions/1693243/instance-variable-self-vs
http://stackoverflow.com/questions/5275749/ruby-should-i-use-self-or

Any thoughts let me know :)

class User
  attr_accessor:username, :blogs

  def initialize(username)
    @username = username
    @blogs = []
  end

  def add_blog(date, text)
    added_blog = Blog.new(date, @username, text)
    blogs << added_blog
    @blogs = blogs.sort_by { |blog| blog.date }.reverse
    added_blog
  end

end

class Blog

  attr_accessor :date, :user, :text

  def initialize(date, user, text)
    @date = date
    @user = user
    @text = text
  end

   def summary
    text.split[0..9].join(' ')
  end

  def entry
    "#{user.username} #{date}\n#{text}"
  end

  def ==(other)
    date   == other.date &&
      user == other.user &&
      text == other.text
  end
end

vs

require 'date'

class User
  attr_accessor :username, :blogs

  def initialize(username)
    self.username = username
    self.blogs    = []
  end

  def add_blog(date, text)
    added_blog = Blog.new(date, self, text)
    blogs << added_blog
    self.blogs = blogs.sort_by { |blog| blog.date }.reverse
    added_blog
  end
end



class Blog
  attr_accessor :date, :user, :text

  def initialize(date, user, text)
    self.date = date
    self.user = user
    self.text = text
  end

  def summary
    text.split[0..9].join(' ')
  end

  def entry
    "#{user.username} #{date}\n#{text}"
  end

  def ==(other)
    date   == other.date &&
      user == other.user &&
      text == other.text
  end
end

I'm really curious why my code doesn't work for 2:1

This is my code:

def sum_difference_product
a = gets.to_i
b = gets.to_i
puts a + b
puts a - b
puts a * b
end

this is the solution...

def sum_difference_product
a , b = gets.split.map { |num| num.to_i }
puts a + b
puts a - b
puts a * b
end

am I not getting the solution? is it just because there is one input in the solution and I have two. I just feel I get to the same result.

2.3 Trying to solve with pop rather than index

Hi guys,

the way I was trying to solve the 2.3 challenge has reached its' limits. Here's the code I've been using

class String
  def every_other_char
    arrays = self.split("").each_slice(2).to_a
    arrays.each do |array|
    array.pop
  end
  arrays.join
  end
end

And here' the error message

 1) String#every_other_char "Four score and seven years ago..." -> "Fu cr n ee er g.."
     Failure/Error: expect(input.every_other_char).to eq output

       expected: "Fu cr n ee er g.."
            got: "Fu cr n ee er g."

Now I know why what's causing the error, just not how to fix it.

I'm splitting the array into sub arrays of 2, but the last sub array has only one element in it. So I end up with something like this [[......] , [[ . ] , [ . ] ] , [ . ]]

So when the program reaches the dots it pops out the last dot in the second to last sub-array, and reaches the end and pops out the last sub array. This means I'm returning one dot instead of two.

I know this is quite convoluted, but I hope it makes sense.

My issue is can this challenge be solved this way at all? I'm not sure how to circumvent the odd number of elements issue. Does anyone know how to solve this?

Thanks!!

Rake 1:4 - Solution

Hi @nikeshashar - In spite of the obvious cleaner code state of the solved solution provided (commented out below) why is my code not passing all the test-cases of Rake 1:4? At first glance I thought it was test-case with 0 values, but then I fixed it. So, honestly, no idea why my code fails running through all examples on Rakefile. After a while I decided to look at the solution, but still that didn't provide me with any insight...

# A grad student at a local university thinks he has discovered a formula to
# predict what kind of grades a person will get. He says if you own less than
#10 books, you will get a "D". If you own 10 to 20 books, you will get a "C",
# and if you own more than 20 books, you will get a "B".
# He further hypothesizes that if you actually read your books, then you will
# get a full letter grade higher in every case.
#
# grade(4,  false)  # => "D"
# grade(4,  true)   # => "C"
# grade(15, true)   # => "B"

# <10 books => D, 10..20 books => C, >20 book =>B


def grade(num_books, has_read_books)
  ##SOLUTION## 
 # if has_read_books
  #   return "C" if num_books <  10
  #   return "B" if num_books <= 20
  #   return "A"
  # else
  #   return "D" if num_books <  10
  #   return "C" if num_books <= 20
  #   return "B"
  # end

   if num_books == 0
       print "D"
   elsif num_books > 0 && num_books < 10 && has_read_books == "true"
      print "C"
   elsif num_books > 0 && num_books < 10 && has_read_books == "false"
     print "C".next
   elsif num_books >= 10 && num_books < 20 && has_read_books == "true"
     print "B"
   elsif num_books >= 10 && num_books < 20 && has_read_books == "false"
     print "B".next
   elsif num_books >= 20 && has_read_books == "true"
     print "A"
   elsif num_books >= 20 && has_read_books == "false"
     print "A".next
    end
end

#grade 5, "true"

image

image

Thank you very much in advance!

Session 1 Challenge 4

This is the code I have written for Challenge 4. I can't seem to get it to work as the error message I get back from the rake is 1) grade for non book reader returns "D" when given 0 books
Failure/Error: expect(grade num_books, false).to eq "D"
ArgumentError:
bad value for range
# ./session1/3-challenge/4_logic.rb:23:in grade' # ./session1/4-spec/4.rb:5:inblock (4 levels) in <top (required)>'

The code I am using is:

def grade(num_books, has_read_books)
if num_books < 10 && has_read_books
puts "C"
else
puts "D"
end

if num_books 10..20 && has_read_books
puts "B"
else
puts "C"
end

if num_books > 20 && has_read_books
puts "A"
else
puts "B"
end
end

Any ideas?

2:3 - "undefined method `each_index' for "":String"

So, I was trying to take inspiration from 1:6 as it seemed to be asking for the same sort of actions, but I just keep getting the same error and I'm not sure how to fix it.

The error is:

  1. String#every_other_char "" -> ""
    Failure/Error: expect("".every_other_char).to eq ""
 NoMethodError:
   undefined method `each_index' for "":String
 # ./session2/3-challenge/3_array.rb:10:in `every_other_char'
 # ./session2/4-spec/3.rb:3:in `block (2 levels) in <top (required)>'

And my code is:

class String
def every_other_char
self.split(",").values_at(* self.each_index.select {|i| i.even?}).join('')
end
end

Help with 1:7

After spending the whole day on this problem, this is the best idea I could come up with:

def pirates_say_arrrrrrrrr(string)

string.split("").each do|ch|
 if ch == /r/i
    puts ch[+1]
 end
end

end

Can any one help me, please?

Session 1 Challenge 2

I have had a look over this and can't figure out where it is going wrong. The first test for arguements (1, 2) comes back 0

def arithmetic2(a, b)
if a < b
return (a / 2).to_f
else
return (b / 2).to_f
end
end

Exercise 2:12 - janky behaviour on `lowest` method

Ok gang, my turn please.

My lowest method is behaving oddly. When i call it separately to the initialize method in two steps it behaves as expected:

f = Fraction.new(20,60)
f.lowest
f.numerator # => 1
f.denominator # => 3

When the methods are concatenated it seems to reverse the numerator and denominator values for some arcane reason:

f = Fraction.new(20,60).lowest
f.numerator # => 3
f.denominator # => 1

Any sage advice would be greatly appreciated. Full code for the exercise is as follows:

class Fraction
  attr_accessor 'numerator', 'denominator'

  def initialize(numerator, denominator)
    @numerator = numerator
    @denominator = denominator
  end

  def gcd(a,b)
    return a if b == 0
    gcd(b, a%b)
  end

  def lowest
    lowest = gcd(@numerator, @denominator)
    @numerator /= lowest
    @denominator /= lowest
  end

  def to_f
    @numerator.to_f / @denominator.to_f
  end

  def to_s
    "#{@numerator}/#{@denominator}"
  end

end

problem with rake / irb

When I try to test my code with rake it keeps telling me my code is incorrect. I have tried copying the code from the solved folder and it's still not working so the problem is clearly not my code. It doesn't happen with every challenge, just a few of them. Also, most of the time rake rejects my code irb says it's fine (not always though). Does anyone have any idea what the problem could be? Please help as I can't keep working on the challenges until this is fixed :-(

Wrong rspec to run rake?

Hey,

I think that my rake won't run because my rspec is too advanced.

Gem::LoadError: Could not find 'rspec' (~> 3.2.0) - did find: [rspec-3.4.0]
Checked in 'GEM_PATH=/Users/Viola/.rvm/gems/ruby-2.2.1:/Users/Viola/.rvm/gems/ruby-2.2.1@global', execute gem env for more information

So I edited the version of rspec at the top of the Rakefile to 3.4.0 (from 3.2.0)

I tried running 'rake 1.1' and this is what I got:

(in /Users/Viola/Desktop/Programming/MakersAcademy/Pre-Course/Week2/ruby-kickstart)
rake aborted!
SyntaxError: /Users/Viola/Desktop/Programming/MakersAcademy/Pre-Course/Week2/ruby-kickstart/Rakefile:13: syntax error, unexpected ':', expecting end-of-input
session2 , prb2 = t2.name.split ':'
^
/Users/Viola/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in eval' /Users/Viola/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in

'
(See full trace by running task with --trace)

Which means there's an error on line 13...

I've been chasing around the internet for a while now, any help most welcome.

2:12 trying to understand

hey everyone, i'm trying to break down 2:12 and try to understand from the solution and instructions provided because i couldn't solve it myself, even if i copy the ready solution, the results are not the same as the example...
the example says:

lissa = User.new 'QTSort'

lissa.username # => "QTSort"

lissa.blogs # => []

lissa.add_blog Date.parse("2010-05-28") , "Sailor Mars is my favourite"

lissa.blogs # => [ blog1 ]

Blog.new Date.parse("2007-01-02"), lissa, "Going dancing!" # we'll call this blog2

Blog.new Date.parse("2006-01-02"), lissa, "For the last time, fuck facebook >.<" # we'll call this blog3

Blog.new Date.parse("2010-01-02"), lissa, "Got a new job, cuz I'm pretty much the best ^_^" # we'll call this blog4

lissa.blogs # => [ blog1 , blog4 , blog2 , blog3 ]

when I did it on my computer with the solution provided, the last lissa.blogs call still shows 1 blog,
I can't see how
Blog.new Date.parse("2007-01-02"), lissa, "Going dancing!"
will save the newly created blog in the User class under blogs array. Hope you understand...

session 2:6

Below is task 6 from session 2. My answer is written underneath - it doesn't pass all tests, and I can't seem to figure out why.

screenshot 2015-03-14 13 04 04

Anyone know why this doesn't fully pass? What is wrong with my logic here?

Thanks!!

Rake 1:5 - Solution explanation

Hi @nikeshashar - so, running Rake 1:5 does not fully validate my answer when all the 3 cases provided in the example comments I get them correctly. In all honesty, after several hours fighting, I also couldn't grasp the comments of the failures either (Screenshot provided).. So, which test-cases am I missing with my code below:

# Given a string, replace every instance of sad to happy
#
# add_more_ruby("The clowns were sad.")         # => "The clowns were happy."
# add_more_ruby("The sad dad said sad stuff.")  # => "The happy dad said happy stuff."
# add_more_ruby("Sad times are ahead!")         # => "Happy times are ahead!"

def add_more_ruby(string)
  string.gsub!(/sad/i, 'happy')
  print string.capitalize
  #string.gsub('sad', 'happy').gsub('Sad', 'Happy')  # => Solved code that does validate Rake 1:5  
end

image

image

Thank you in advance!!

2:12 - Fractions

I'm feeling very stuck, especially as the user AlexAvlontis who posted an issue about this challenge seemed to have a completely different challenge to the one I'm working on.

Anyway, my code keeps blowing up here:

def lowest
    puts "lowest method is running"
    puts "Calculating numerator gcd"
    @numerator = self.gcd @numerator, @denominator
    puts "Numerator gcd calculation complete"
    puts @numerator # => produces a blank line
    puts "Calculating denominator gcd"
    @denominator = self.gcd @denominator, @numerator 
    puts "Denominator calculation complete"
    puts "lowest method is complete"
    return @numerator, @denominator
end

def gcd(a,b) => # => Running from: puts "Calculating denominator gcd" : @denominator = self.gcd @denominator, @numerator 
    puts "gcd method is running"     
    return a if b == 0
    self.gcd(b, a%b) # => Throws the error: `%': nil can't be coerced into Float (TypeError)
    puts "gcd method is complete"
  end

I think I've misunderstood how fractions work, but it seems that the @numerator variable being passed to the gcd methods "b" parameter has nothng in it... which on further testing is indeed the case, as calling "puts" on it produces a blank line. Let me go and revise basic mathematics, but can anyone shed light on why @numerator is being calculated to an empty variable by the code I'm currently using?

Challenge 2:7

As part of 2:7 I'm trying to select alternate words in an array like this:

def alternate_words sentence
sentence_array = sentence.split
sentence_array.select! { |x| sentence_array.index(x).even? }
sentence_array
end

This works most of the time, except for the longest test:

p alternate_words "I could have made money this way, and perhaps amused myself writing code. But I knew that at the end of my career, I would look back on years of building walls to divide people, and feel I had spent my life making the world a worse place."

which gives the odd word that shouldn't be there:

["I", "have", "money", "way,", "perhaps", "myself", "code.", "I", "that", "the", "of", "career,", "I", "would", "back", "years", "of", "building", "to", "people,", "feel", "I", "had", "my", "making", "world", "worse"]

Any ideas what I've done wrong here?

Session2. 3-challenges. 7_Array.rb - Rake not passing

Hi, I have completed the code for this challenge, and every example I pass to it, it seems to work, yet it fails the rake test and I can not interpret the reason. Any ideas? Thanks.

def alternate_words(sentence)
    arr = sentence.split
    new_arr = []
    arr.map.with_index { |value, index| new_arr << value if index.even? }
    new_arr = new_arr.map { |element| element.tr("!@$#%^&*()-=_+[]:;,./<>?\|", '') }
end

Having trouble with ruby-kickstart challenge 1:4

I know there is probably a prettier way to do this but I'm still not sure why this doesn't work.

def grade(num_books, has_read_books)

if num_books < 10 && has_read_books != true
"D"
elsif num_books <= 10 && has_read_books == true
"C"
elsif num_books (10..20) && has_read_books != true
"C"
elsif num_books (10..20) && has_read_books == true
"B"
elsif num_books > 20 && has_read_books != true
"B"
else
num_books > 20 && has_read_books != true
"A"
end

end

'rake' is mistakenly called 'rack' in the readme.

Just to make you aware that you call it 'rack' in the readme, but the challenge files do correctly instruct the user to use rake #:#

EDIT: Unless of course it is meant to be rack, which I've never heard of.

bundle install

Hi guys,

I forked the repo and cloned it locally but something wrong with bundle install.

valentina@osboxes:$ bundle install
The program 'bundle' is currently not installed. To run 'bundle' please ask your administrator to install the package 'bundler'
valentina@osboxes:
$ gem install bundler
Fetching: bundler-1.11.0.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /var/lib/gems/2.1.0 directory.
valentina@osboxes:~$ sudo gem install bundler
[sudo] password for valentina:
Fetching: bundler-1.11.0.gem (100%)
Successfully installed bundler-1.11.0
Parsing documentation for bundler-1.11.0
Installing ri documentation for bundler-1.11.0
Done installing documentation for bundler after 6 seconds
1 gem installed

valentina@osboxes:$ cd ruby-kickstart/
valentina@osboxes:
/ruby-kickstart$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching version metadata from https://rubygems.org/..
Resolving dependencies...
Using rake 10.4.2
Installing mime-types 2.4.3
Installing mini_portile 0.6.2
Installing rack 1.6.0
Using diff-lcs 1.2.5
Installing helloworld 0.0.1
Installing rspec-support 3.2.2 (was 3.1.2)
Installing tilt 1.4.1
Using bundler 1.11.0
Installing nokogiri 1.6.6.2 with native extensions

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

/usr/bin/ruby2.1 extconf.rb

mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /tmp/bundler20151214-3156-1eqy0venokogiri-1.6.6.2/gems/nokogiri-1.6.6.2 for inspection.
Results logged to /tmp/bundler20151214-3156-1eqy0venokogiri-1.6.6.2/extensions/x86_64-linux/2.1.0/nokogiri-1.6.6.2/gem_make.out
Installing rack-test 0.6.3
Installing rack-protection 1.5.3
Installing rspec-core 3.2.3 (was 3.1.7)
Installing rspec-expectations 3.2.1 (was 3.1.2)
Installing rspec-mocks 3.2.1 (was 3.1.3)
An error occurred while installing nokogiri (1.6.6.2), and Bundler cannot
continue.
Make sure that gem install nokogiri -v '1.6.6.2' succeeds before bundling.

Anyone knows what's wrong? I'm using UBUNTU

arrays, logic and control, hashes, strings - Cheatsheets Missing

FYI @spike01 - as I went through forking the repo and attempting some of the exercises... I realized that original repo (i.e. Josh Creek's one) contains a few more cheat sheets that are key for the initial sections. Particularly these are:
arrays
logic and control
hashes
strings

See snapshot below to compare:

image

image

problem with rspec

Hi guys. I have installed rspec 3.2.0 and bundle. When I run rake 1:1 I get this error:

captura de pantalla de 2015-10-04 11 56 11

captura de pantalla de 2015-10-04 11 57 22

Does anybody knows how could I fix this?

Challenge 1:7

Hi there I'm stack on this one, this is what I got

'def pirates_say_arrrrrrrrr(string)
final_world = ""
string.length.to_i.times {|x| final_string << string[x+1] if string[char] == 'r' || string[char] == 'R'}
end
'
rspec ./session1/4-spec/7.rb:2 # pirates_say_arrrrrrrrr returns "eeu" when given "are you really learning Ruby?"

Thanks

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.