Git Product home page Git Product logo

doing's Introduction

🥃 Brett Terpstra

Software Developer and Writer @oracle-devrel, mad coder, blogger, podcaster, cat lover. I mean, I like dogs… but they're not cats.

total stars total stars followers followers

 ttscoff ttscoff

Connect With Me

ttscoff ttscoff linkedin

Also follow me on Mastodon!

doing's People

Contributors

bentsai avatar bewuethr avatar d2s avatar dependabot[bot] avatar guiniol avatar krzysiek-b avatar lastobelus avatar led avatar pvinis avatar silent-e avatar tmjbradley avatar ttscoff avatar vcavallo avatar yasuhito avatar zearin avatar zug-zug 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doing's Issues

Feature Request: Archive all Done entries

It would be great if all entries that were marked done could be moved to the archive section. This would mirror the TaskPaper app's behavior of "Archive Done Tasks". Thanks!

  • ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.4.0]
  • doing v0.2.4
  • Mac OS 10.9.2

Changing the date format results in no results for "doing show"

Changed the time format in .doingrc from the default

templates:
default:
date_format: '%Y-%m-%d %H:%M'

to the more German style

date_format: '%d.%m.%Y %H:%M'

This change results in an empty list returned by doing show command.
Reverting back to the original date format and adding a new entry results in a proper output of the doing show command.

It seems the search cannot handle changes in date format.

Thx
Sven

doing today has wrong indentation

The first line of the default 'doing today' has no spacing even though %_I is specified. Subsequent lines have the expected spacing.

Feature request: add a flag to specify a `doing_file` on the command line

It would be useful to have a switch to specify a different doing_file on the command line.

As far as a I can tell, the doing_file is human readable, but if I am working on different projects and all the notes are in the same file, I'm not going to be able to really read the file. This is why I think a flag to change the doing_file on the fly would be appropriate.

Crashing: "undefined method `[]' for nil:NilClass (NoMethodError)"

Opening an issue as I'm currently getting the following problem, no matter what parameters I give to Doing. I'll update with a fix if I find one.

/Users/ian/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/doing-0.2.4/lib/doing/wwid.rb:103:in `block in initialize': undefined method `[]' for nil:NilClass (NoMethodError)
    from /Users/ian/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/doing-0.2.4/lib/doing/wwid.rb:92:in `each'
    from /Users/ian/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/doing-0.2.4/lib/doing/wwid.rb:92:in `initialize'
    from /Users/ian/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/doing-0.2.4/bin/doing:14:in `new'
    from /Users/ian/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/doing-0.2.4/bin/doing:14:in `<top (required)>'
    from /Users/ian/.rbenv/versions/2.0.0-p247/bin/doing:23:in `load'
    from /Users/ian/.rbenv/versions/2.0.0-p247/bin/doing:23:in `<main>'

Problem when using å ä ö

Hello,

Tried doing and its cool! But having problems when I have entered å ä ö. Then I'm getting the following error. and its broken :(

C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/doing-0.1.7/lib/doing/wwid.rb:85:in `spl
it': invalid byte sequence in UTF-8 (ArgumentError)
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/doing-0.1.7/lib/doing/wwid.
rb:85:in `initialize'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/doing-0.1.7/bin/doing:9:in
`new'
        from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/doing-0.1.7/bin/doing:9:in
`<top (required)>'
        from C:/Ruby200-x64/bin/doing:23:in `load'
        from C:/Ruby200-x64/bin/doing:23:in `<main>'

Feature Request: Move from Currently to Section

I'd love some way (and maybe I'm just missing it in the current build) to move tasks between sections. This would work kind of like a custom 'archive' action. Basically, I want to move things into another section before they get moved into an archive.

Add duration information

It would be great to add the duration of a task (how long it took to get this done) with absolute measures like 2 hours or 20 minutes.

This would allow to interrupt working on a task and have the effort recorded by this time record.
Could be implemented with a special tag like @time(180).

On the commandline with a --d parameter:
doing now --d 2h my task
doing --b yesterday --d 30m my task from yesterday

Should allow to understand 2h, 30m etc. and should be translated into a normalized value (minutes) in the @time(time_in_minutes) tag for csv/excel processing.

Any other formatting for the duration which can be processed easily is also welcome. A format of the representation in the reports could be:

bash > doing show
2014-04-03 12:56 | 180 | Hallo welt
2014-04-03 12:57 | 30 | Abc I did this

Error "missing argument: -i" after installing

I'm getting this error right after installing the gem.

 ✈  gem install doing
Fetching: gli-2.7.0.gem (100%)
Successfully installed gli-2.7.0
Fetching: doing-0.1.6.gem (100%)
Successfully installed doing-0.1.6
ERROR:  While executing gem ... (OptionParser::MissingArgument)
    missing argument: -i

Env:

  • ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin10.0]
  • rbenv 0.4.0-80-g59aca30
  • OSX 10.6

Add basic time tracking

It would be great if there was a way to query the “doing” file to get a timesheet with a summary of task durations for a given time range.

Combine this with the ability to filter by tags (#17) for project status reports.

Feature request: append line to current entry

I'd love to be able to type doing append <msg> or something along those lines in order to append a line to the notes associated with the current entry rather than opening it in the editor. It seems more in line with the "on the fly" nature of doing. I apologize if there's already a simple way to do this that I've overlooked.

Entries with quotes: quotes are dropped

If you add an entry that contains quotes:

± doing later entries with quotes like: steve's drop into quote>
quote> '

it drops you into the quote prompt and then drops the quote from the entry:

± doing show later
2014-03-19 13:03 | Boot scotts vmware box
2014-03-19 13:06 | Entries with quotes like: steves drop into quote>

Is this the expected behavior?

0.2.5pre is out

I've pushed 0.2.5pre to the gem server and the 0.2.5pre branch. If you have time to test, please do (gem install doing --pre).

If I don't hear about any major bugs over the weekend, I'll push it live early next week. Thanks.

Brief release notes:

  • Default to showing times #26, show totals even if no tags exist #27, fix indentation #29
  • Add section label to archived tasks automatically, excepting Currently section
  • Today outputs and backdate for finish
  • html styling and fix for 1.8.7 haml errors
  • Look, HTML output! (--output html)
  • Also, --output csv
  • let doing archive function on all sections
  • option to exclude date from done tags
  • output newlines in sections and views
  • Flagging (doing mark)
  • fix for view/section guess error
  • Adding tag filtering to archive command (doing archive @done)

Feature Request: hierarchical .doingrc resolution

As a contractor maintaining multiple projects for multiple clients it would be quite helpful if doing resolved its config file hierarchically in the typical unix way, allowing the ability to set the doing_file, current_section, etc. for a particular directory & its children.

I'm quite willing to work on this; let me know if you have any preference for how it is done or if you know of a gem/library that already does the hierarchical merging of config files.

As part of doing this it would also make sense to add a default_tags section too, and possibly an archive_section so that different clients' entries can get archived to different sections (for me it is vital to use only one global doing file).

autotag issue

I can't execute any commands that add any entries to my doing file since upgrading to 1.08.

> GLI_DEBUG=true doing done -b "11.15am" -t "35m" Doing something
error: undefined method `each' for nil:NilClass
/Library/Ruby/Gems/2.0.0/gems/doing-1.0.8pre/lib/doing/wwid.rb:1256:in `autotag': undefined method `each' for nil:NilClass (NoMethodError)
    from /Library/Ruby/Gems/2.0.0/gems/doing-1.0.8pre/lib/doing/wwid.rb:351:in `add_item'
from /Library/Ruby/Gems/2.0.0/gems/doing-1.0.8pre/bin/doing:355:in `block (2 levels) in <top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/command_support.rb:121:in `call'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/command_support.rb:121:in `execute'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/app_support.rb:284:in `block in call_command'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/app_support.rb:297:in `call'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/app_support.rb:297:in `call_command'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/app_support.rb:79:in `run'
from /Library/Ruby/Gems/2.0.0/gems/doing-1.0.8pre/bin/doing:1058:in `<top (required)>'
from /usr/bin/doing:23:in `load'
from /usr/bin/doing:23:in `<main>'

Seems to be related to the auto tag functionality, because when I add the following to my ~/.doingrc file, things work again:

autotag:
    whitelist: []
    synonyms: []

Error in Yosemite

doing now test
error: undefined method `[]' for nil:NilClass

ruby --version
ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-darwin14.0]

gem --version
2.2.2

rake --version
rake, version 10.1.0

doing --version
doing v1.0.8pre (happens on the older version too)

doing -f ~/test.md now testing
error: undefined method `[]' for nil:NilClass

undefined method `to_time' for #<Date: 4913467/2,0,2299161>

Hey,

I am using Linux Mint 16 Petra. I didn't had gem command so I installed rubygems:

~/ ❯❯❯ sudo apt-get install rubygems
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libruby1.8 ruby1.8
Suggested packages:
  ruby1.8-examples ri1.8 ruby-switch
Recommended packages:
  ruby1.8-dev build-essential
The following NEW packages will be installed:
  libruby1.8 ruby1.8 rubygems
............

After that I installed doing like this:

~ ❯❯❯ sudo gem install doing
Fetching: gli-2.7.0.gem (100%)
Fetching: doing-0.1.6.gem (100%)
Successfully installed gli-2.7.0
Successfully installed doing-0.1.6
2 gems installed

I added an item:

~ ❯❯❯ doing now stuff

And when I wanted to see it:

~ ❯❯❯ doing recent 2
error: undefined method `to_time' for #<Date: 4913467/2,0,2299161>

`doing later` errors out

When calling doing later (for the first time, or after making a doing later <something> call) the following error is thrown:

$ doing later
/Library/Ruby/Gems/2.0.0/gems/doing-0.1.7/lib/doing/wwid.rb:144:in `system': no implicit conversion of nil into String (TypeError)
from /Library/Ruby/Gems/2.0.0/gems/doing-0.1.7/lib/doing/wwid.rb:144:in `block in fork_editor'
from /Library/Ruby/Gems/2.0.0/gems/doing-0.1.7/lib/doing/wwid.rb:144:in `fork'
from /Library/Ruby/Gems/2.0.0/gems/doing-0.1.7/lib/doing/wwid.rb:144:in `fork_editor'
from /Library/Ruby/Gems/2.0.0/gems/doing-0.1.7/bin/doing:82:in `block (2 levels) in <top (required)>'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/command_support.rb:121:in `call'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/command_support.rb:121:in `execute'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/app_support.rb:284:in `block in call_command'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/app_support.rb:297:in `call'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/app_support.rb:297:in `call_command'
from /Library/Ruby/Gems/2.0.0/gems/gli-2.9.0/lib/gli/app_support.rb:79:in `run'
from /Library/Ruby/Gems/2.0.0/gems/doing-0.1.7/bin/doing:350:in `<top (required)>'
from /usr/bin/doing:23:in `load'
from /usr/bin/doing:23:in `<main>'
error: undefined method `strip' for nil:NilClass`

Using Ruby 2.0.0.p247.

0.2.4 stack level too deep

I'm receiving a error: stack level too deep error when I try to run the following commands:

doing show tag
doing view sample

This is my .doingrc

doing_file: ~/.what_was_i_doing.md
current_section: Currently
templates:
  default:
    date_format: '%Y-%m-%d %H:%M'
    template: '%date | %title%note'
    wrap_width: 0
  today:
    date_format: '%_I:%M%P'
    template: '%date: %title%note'
    wrap_width: 0
  last:
    date_format: '%-I:%M%P on %a'
    template: '%title (at %date)%odnote'
    wrap_width: 88
  recent:
    date_format: '%_I:%M%P'
    template: '%shortdate: %title'
    wrap_width: 88
views:
  sample:
    date_format: '%_I:%M%P'
    template: '%date | %title%note'
    wrap_width: 0
    section: section_name
    count: 5
  later:
    section: Later
    count: 5
    wrap_width: 60
    date_format: '%F %_I:%M%P'
    template: '%date | %title%note'
  old:
    section: Old
    count: 5
    wrap_width: 0
    date_format: '%F %_I:%M%P'
    template: '%date | %title%note'
:include_notes: true
editor_app: 

Feature Request: "doing archive" options

Hi,

I recently started to use doing and im trying to build up my workflow. One thing that o realized is that 'doing archive' doesn't add '@project(project_name)" tag to the entry. I was wondering if there is an option for it or it has to be implemented.

Cheers,
Amir

Day One + doing integration

I realize this isn't really the right place, but I'm not sure where to put this to share with others. @ttscoff's idea about using Day One for reminders and for an easy way to enter "doing" items got me excited. I hacked together the below script.

#!/usr/bin/ruby

# Requirements:
# - rb-dayone and doing gems installed for the system Ruby.
#   (Mine (OSX 10.10) are in /Library/Ruby/Gems/2.0.0/gems/)
# 
# How to run:
# $./dayone-to-doing.rb 0A8BE4BB9F7E40B5A6F3F621797FC6F5.doentry
# The parameter passed to the script is the doentry file that was just created.
# The script will:
#   1) Parse the doentry
#   2) Check if it has the 'wwid' tag
#   3) If so, add it to your doing file in the default section
#
# So the overall flow for me is:
#   1) Set Day One to prompt me hourly from the menu bar
#   2) Setup this Ruby script to run when a new file is added to my Day One journal entries folder.
#       Mine is at ~/Dropbox/Apps/Day One/Journal.dayone/entries.  You can use either Hazel or
#       Finder's built-in Folder Actions functionality to trigger the script with the doentry file as the first argument.
#   2) When Day One prompt appears, write what I've done over the past hour, end it with #wwid, and hit command+enter
#   3) Nothing!  Anything journal entry you write in Day One with the wwid tag will show up in your doing file!

require 'rb-dayone'
require 'doing'

doentry = ARGV[0]
abort('doentry file not provided as first argument') unless doentry

entry = DayOne::EntryImporter.from_file(doentry).to_entry

if entry.tags.include? 'wwid'
  doing = WWID.new
  doing.init_doing_file
  tagged_entry = entry.entry_text.gsub('#','@')
  doing.add_item(tagged_entry, nil, {:back => entry.created_at.localtime})
  doing.write(doing.doing_file)
else
  abort('No #wwid tag')
end

Also here: https://gist.github.com/crcastle/fc7189aa9e8acd3538fc

doing 0.2.0 testing

Version 0.2.0 needs testers. I haven't updated the docs yet, but here are the new features. doing help is up to date, and doing help command will show all available flags and switches for any given command.

0.2.0

  • doing done without argument tags last entry done
    • -a archives them
  • doing finish or doing finish X marks last X entries done
    • -a archives them
  • doing tag tag1 [tag2] tags last entry or -c X entries
    • doing tag -r tag1 [tag2] removes said tag(s)
  • custom views additions
    • custom views can include tags and tags_bool
      • tags is a space separated list of tags to filter the results by
      • tags_bool defines AND (all tags must exist), OR (any tag exists), or NONE (none of the tags exist)
    • order key (asc or desc) defines output sort order by date
    • section key can be set to "All" to combine sections
  • doing show updates
    • accepts "all" as a section
    • arguments following section name are tags to filter by
      • -b sets boolean (AND, OR, NONE) or (ALL, ANY, NONE) (default OR/ANY)
    • use -c X to limit results
    • use -s to set sort order (asc or desc)
    • use -a to set age (newest or oldest)
  • fuzzy section guessing when specified section isn't found
  • fuzzy view guessing for doing view command

Install the pre-release version for testing with gem install doing --pre.

If you have the setup for it, you can clone the testing branch and run bundle install and rake package from within the doing folder. A gem will be built in pkg/doing.0.2.2.pre.gem that you can install with gem install pkg/doing.0.2.2.pre.gem.


0.1.9

  • colors in templated output
  • open command
    • opens in the default app for file type
    • -a APPNAME (doing open -a TaskPaper)
    • -b bundle_id (doing open -b com.sublimetext.3)
  • -e switch for now, later and done commands
    • save a tmp file and open it in an editor
    • allows multi-line entries, anything after first line is considered a note
    • assumed when no input is provided (doing now)
  • doing views shows all available custom views
  • doing view without a view name will let you choose a view from a menu
  • doing archive fixed so that -k X works to keep X number of entries in the section

doing was not in the path after install on OSX

I'm not sure if this is a brew related issue but after installing the gem I had to do the following to make sure that doing was in my path.

ln -s /usr/local/Cellar/td-agent/1.1.17/bin/doing /usr/local/bin/doing

I didn't notice this in the install instructions and I guess it could be a little confusing for some people after installation if they couldn't immediately use the tool.

Filter by tags

Would be nice if the CLI supported a means to filter the list of entries by tags like jrnl. See http://maebert.github.io/jrnl/usage.html#using-tags.

TaskPaper-style @project tags can be used to filter the file in TaskPaper, but it might be useful if the doing CLI could do the same, without having to open the file in TaskPaper.

The `read_config` function is infinitely loops on Windows

As of 024ed67 read_config appears to be broken on Windows. The resulting behavior is that doing simply hangs and never returns.

  • doing 1.0.8pre
  • Windows 7
  • Ruby 1.9.3

The problem is that read_config assumes the root folder will be '/', but on Windows, this will include the drive name (i.e. 'C:/').

Non-done tasks are archived

When running doing archive the system archives all but the oldest 5 items in Currently to Archive. This does not consider the done status of the tasks, so I might see incomplete tasks get archived.

I'd think it would make sense to only move @done tasks to Archive.

Thoughts?

Enhancement: -e flag for creating an entry with $EDITOR

Would you consider adding a -e flag to doing which could be used with any of the commands that create new entries?

It would open up your $EDITOR, and after successful termination, place any saved data into the doing_file as an entry.

I'm thinking it would be similar to how commits can be edited in most version control systems.

If you don't get to it, I may submit a patch at some point, but would need to brush up on my ruby beforehand, and would prefer to know that you're open to the idea before I started.

Prevent indenting manual comments below tasks?

I'm enjoying using this to keep track of what I am and have done at work. What I will do after I finish a task is manually add (in Taskpaper) is add a note in italics about what I did for log keeping or if I need to refer to it later. As an example:

- 2014-04-07 12:51 | Print the newest versions of document for boss @done(2014-04-07)
            _Chapter two with the most recent graphic table that he wanted._   

Is there a way to prevent my manual entry from being indented? Is there something you can point me to in the code that I can change/fork manually? Thanks in advance Brett.

formats with %interval should imply -t

If a format contains the %interval format specifier, that should imply -t (showing time intervals). I would expect explicitly using --no-times to override that and not show an interval.

UTF8 ASCII-8Bit error

Hi,
I've encountered an error in doing. When I try to run

doing now "Überarbeite Doku: Doppel-Backslash am Ende des Namespace"

It raises an error:

error: "\xC3" from ASCII-8BIT to UTF-8

I'm using Yosemite 10.10.1 and the latest version of doing.

Feature Request: Mark last entry done

I would love to be able to mark @done(date) the entry that is retrieved with doing last. So basically marking what you are working on as done. doing last done perhaps.

Additional ideas are the ability to immediately archive it and being able to specify a number of items to mark done (i.e. doing last done -3 to mark last three entries complete).

Thanks!

Append done to existent entry when argument given

Currently doing done ARG makes a new entry with @done, without care of stored entries. But I hope that it appends a @done to the entry when ARG matches that.

Or, since iterating over all can be overhead when wwid list is too long, an interface like doing choose for undone tasks would make it more attractive.

doing done ignores --back option

doing v0.2.4
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]

doing done ignores the --back option when "entry" argument is missing. This option adds the @done tag to the last entry. I expect end time with @done tag to be offset by time specified in the --back option, but current time is used with @done tag.

Parsing $EDITOR fails - 0.1.7

scolli208@HQSML-1081034 ~ » doing now -e
error: undefined method `strip' for nil:NilClass
scolli208@HQSML-1081034 ~ » echo $EDITOR                                                                             1 ↵
mvim -f --nomru -c "au VimLeave * !open -a iTerm"

Suggestion: `doing open` to open file in default app

Would be nice to be able to just run doing open to open the file in the default app that opens .md. Would be nice to run doing open -a Marked to open it in a specific app (like Marked).

I'd like to label this as an "enhancement" not a true "issue", but I don't see the option to do so. Feel free to disregard or delete this.

How do version number works?

Hello,

I wanted to create an package for archlinux, but I realised there's a bunch of pre versions. I'm not familiar with ruby numbering, but I would imagine pre versions are beta.
So, why is 1.0.7 still a pre version when 1.0.8pre is already out?
Are there plans for a new stable version or should I just package the latest pre version?

Cheers

Feature request: Marked support

Cool tool! Tried to view the md file in Marked and the formatting was terrible for that purpose.
Sure I could do some regex on that file myself.but that won't give me a live preview in Marked. Which would be way cooler than my editor (which my wife like to refer to as "visually underwhelming". ;-)

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.