Giter Club home page Giter Club logo

m13progresssuite's Introduction

M13ProgressSuite ================

A set of classes used to display progress information to users on iOS.

Includes:

  • A interchangeable set of progress view of diffrent styles. All the progress views are based on the same superclass, allowing any of them to be switched with any other easily.
  • A progress bar for UINavigationBar that works like Apple's Messages app. It also has the added feature of having an indeterminate style.
  • A HUD overlay that works over any UIView. Uses the M13ProgressView class to allow easy customizablility of the progress view.
  • A progress view that is styled like terminal.
  • Complete documentation of each class.

UINavigationController (M13ProgressViewBar)

Adds a progress bar to the UINavigationController's UINavigationBar. The progress bar is controlled through the UINavigationController.

M13ProgressHUD

A customizable HUD that displays progress, and status information to the user. It uses the M13ProgressView class to allow easy changing of the progress view style.

M13ProgressConsole

A progress view styled like Terminal on OS X.

M13ProgressViews

A set of progess view based off of the same superclass. Allowing easy switching between progress view. Each progress view has success and failure actions, an indeterminate mode, and appearance customization features.

Bar

Bordered Bar

Filtered Image

Image

Pie

Ring

Segmented Bar*

Segmented Ring

Striped Bar

Progress View Usage:

All progress bars follow the same general usage:

// Create the progress view.
M13ProgressViewBar *progressView = [[M13ProgressViewBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 50.0, 5.0)];

// Configure the progress view here.

// Add it to the view.
[self.view addSubview: progressView];

// Update the progress as needed
[progressView setProgress: 0.1 animated: YES];

HUD Usage:

// Create the HUD
M13ProgressHUD *HUD = [[M13ProgressHUD alloc] initWithProgressView:[[M13ProgressViewRing alloc] init]];

// Configure the progress view
HUD.progressViewSize = CGSizeMake(60.0, 60.0);
HUD.animationPoint = CGPointMake([UIScreen mainScreen].bounds.size.width / 2, [UIScreen mainScreen].bounds.size.height / 2);

// Add the HUD to the window. (Or any UIView)
UIWindow *window = ((AppDelegate *)[UIApplication sharedApplication].delegate).window;
[window addSubview:HUD];

// Show the HUD
[HUD show:YES];

//Update the HUD progress
[HUD setProgress:0.5 animated:YES];

// Update the HUD status
HUD.status = @"Processing";

// Hide the HUD
[HUD show:NO];

Contact Me:

If you have any questions comments or suggestions, send me a message. If you find a bug, or want to submit a pull request, let me know.

License:

MIT License

Copyright (c) 2013 Brandon McQuilkin

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

m13progresssuite's People

Contributors

algrid avatar benjerrim avatar benjiwheeler avatar bluevirusx avatar bojan avatar cconstable avatar charlymr avatar hani-ibrahim avatar harlanhaskins avatar ianyh avatar ilidar avatar jurysch avatar legoless avatar levous avatar markst avatar marxon13 avatar matt-expedata avatar mhaleem avatar mkj-is avatar moi68 avatar ninjakittenproductions avatar pabloquinteros avatar sunkehappy avatar tbergeron avatar trungp avatar zvonicek 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  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

m13progresssuite's Issues

How to add to xCode?

I've tried Cocoapods with no luck (message: Repository not found on Github)

Can I install it manually?How?
I want to use it programmatically (no Storyboard).

Thanks and congratulation for this great job.

Alex

Build breaks for App Extension

Build breaks when i added the framework for App Extension target due to usage of [UIApplication sharedApplication].statusBarOrientation.

M13ProgressViewRing stops spinning

Hello, I am trying to use a the M13ProgressViewRing without showing the percentage, but sometimes the the progress ring isn't spinning, it is just frozen in one spot.

podspec for 1.1.0?

I try to integrate this into my project using cocoapods but I found the latest version on pod is 1.0.1. Just wondering when could the podspec be updated to 1.1.0?

Podfile has errors

Report

  • What did you do?
    I commented on an existing issue earlier but I found a way to install pods from a GitHub repository.
    pod repo add M13ProgressSuite https://github.com/Marxon13/M13ProgressSuite
    Then I tried to install it by adding it in the Podfile that's when I got this error.

Thanks! :)

  • What did you expect to happen?
    Installed the pod.
  • What happened instead?
    This:

Stack

   CocoaPods : 0.29.0
        Ruby : ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
    RubyGems : 2.1.4
        Host : Mac OS X 10.9.1 (13B42)
       Xcode : 5.0.2 (5A3005)
Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib
Repositories : M13ProgressSuite - https://github.com/tbergeron/M13ProgressSuite @ f13905800ecf8c2088294481a36d5c48c20ed960
               master - https://github.com/CocoaPods/Specs.git @ da3319f474f5623533d4bd779ec7d52f66d88555

Podfile

platform :ios, '7.0'

inhibit_all_warnings!

pod 'SDWebImage'
pod 'EAIntroView'
pod 'SORelativeDateTransformer'
pod 'DAKeyboardControl'
pod 'ShareKit'
pod 'MGBox2'
pod 'Foursquare-API-v2'
pod 'M13ProgressSuite'

Error

ArgumentError - Malformed version number string en.lproj
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/vendor/version.rb:191:in `initialize'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/version.rb:62:in `initialize'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/source.rb:93:in `new'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/source.rb:93:in `block in versions'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/source.rb:93:in `map'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/source.rb:93:in `versions'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/specification/set.rb:154:in `block in versions_by_source'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/specification/set.rb:153:in `each'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/specification/set.rb:153:in `versions_by_source'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/specification/set.rb:133:in `versions'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/specification/set.rb:126:in `acceptable_versions'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-core-0.29.0/lib/cocoapods-core/specification/set.rb:65:in `required_by'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/resolver.rb:154:in `block (2 levels) in find_dependency_specs'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/user_interface.rb:113:in `message'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/resolver.rb:152:in `block in find_dependency_specs'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/resolver.rb:148:in `each'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/resolver.rb:148:in `find_dependency_specs'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/resolver.rb:65:in `block (2 levels) in resolve'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/user_interface.rb:52:in `section'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/resolver.rb:63:in `block in resolve'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/resolver.rb:62:in `each'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/resolver.rb:62:in `resolve'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/installer/analyzer.rb:297:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/user_interface.rb:52:in `section'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/installer/analyzer.rb:295:in `resolve_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/installer/analyzer.rb:57:in `analyze'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/installer.rb:171:in `analyze'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/installer.rb:94:in `block in resolve_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/user_interface.rb:52:in `section'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/installer.rb:93:in `resolve_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/installer.rb:86:in `install!'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/command/project.rb:38:in `run_install_with_update'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/command/project.rb:68:in `run'
/Library/Ruby/Gems/2.0.0/gems/claide-0.4.0/lib/claide/command.rb:213:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods/command.rb:51:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.29.0/bin/pod:24:in `<top (required)>'
/usr/bin/pod:23:in `load'
/usr/bin/pod:23:in `<main>'

M13ProgressViewBar doesn't do well with recycled views like UITableViewCell

I was trying to use an M13ProgressViewBar in a UITableViewCell. I have some cells that have some progress, but other cells have 0% progress.

Since these views are in UITableViewCells, they will be recycled when added to a UITableView. If I call "setProgress:0" on one of these items, the cell will not redraw. This is because the routine "drawRect" does nothing if "self.progress" is 0.

I created a pull request, #43, to address this problem. All I do is call

    [_progressLayer setPath:nil];

and that takes care of it.

M13ProgressHUD appearing from top left corner when shown from UITableViewController

I have created a fairly standard setup for an app; a UINavigationController (no custom class) with a UITableViewController as its root controller, displaying a list of items fetched from a server and I want to show a HUD to show the progress.

This is the code I'm using; it is taken straight from the sample app

- (void)viewDidLoad
{
    [super viewDidLoad];

    HUD = [[M13ProgressHUD alloc] initWithProgressView:[[M13ProgressViewRing alloc] init]];
    HUD.progressViewSize = CGSizeMake(60.0, 60.0);
    UIWindow *window = ((LPAppDelegate *)[UIApplication sharedApplication].delegate).window;
    [window addSubview:HUD];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    [HUD show: YES];
}

The HUD works but instead of "popping" from the middle of the screen it "grows" from the top left angle of the screen to its full size.

I looked allover the sample project to find differences and the only thing I'm doing different aside from performing this on viewDidAppear is that I'm calling this from a UITableViewController.
I tried moving this to a UIViewController and it works perfectly (even with said ViewController being part of a navigation stack) so it seems it is the table view controller's fault

Any idea why this is happening? I found that editing M13ProgressHUD.m's layoutHUD and moving

    backgroundView.frame = CGRectIntegral(backgroundRect);
    _progressView.frame = CGRectIntegral(progressRect);

outside the UIView animateWithDuration block fixes the issue, but it doesn't look ideal and since it only happens inside the UITableView there must be something else causing it.

The navigation progress sometimes can not work common

  • (void)backItemAction {
    if ([self.navigationController isShowingProgressBar]) {
    [self.navigationController cancelProgress];
    [self.navigationController setProgress:0 animated:NO];
    }
    [self.navigationController popViewControllerAnimated:YES];
    }

I use navigation progress in a webView, it works.
but sometimes, when I pop back, the navigation progress will not cancel or finish.
The prev viewcontroller will show the progress.
It happened sometimes.

M13ProgressViewBar should update corner radius when progressBarThickness is set

Looking through the code for M13ProgressViewBar -setup. The _progressBar.layer.cornerRadius is set to be half of the default progressBarThickness. However, when setting the progressBarThickness attribute externally, the corner radius of the _progressBar view is never updated to match the new thickness. I suggest updating the corner radius for this view in the setter for progressBarThickness.

Lots of -Wimplicit-retain-self compile warnings

I compiled project with such compiler flag and there are a lots of warnings.
Xcode suggested to explicitly mention "self" (self->_ivar instead of _ivar) to indicate this is intended behaviour.
Could you please take a look at warnings - where is intended behaviour & where is not?
What do you think?

<Error>: CGContextDrawRadialGradient: invalid context 0x0

M13ProgressHUD with mask M13ProgressHUDMaskTypeGradient generates the following warning:

Error: CGContextDrawRadialGradient: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

Problems with ShapeCircle Segmented Bar

I'm having some issues with ShapeCircle Segmented Bar when creating it programmatically. ShapeRectangle and ShapeRoundedRect works fine, but when I change the type to ShapeCircle, segmented bar is not displayed at all.

I suppose it has something to do with calculating cornerRadius in drawIndeterminate method as if I replace line 439 in M13ProgressViewSegmentedBar.m with cornerRadius = _cornerRadius, it solves the issue. However, I'm not sure about the consequences of that.

M13ProgressViewImage crash

Hi there,

I'm using this class to indicate download progress. Sometimes I get a crash when is rendering the current progress in createImageForCurrentProgress method. I'm instantiating it with the following code:

self.progressImage = [[M13ProgressViewImage alloc] initWithFrame:CGRectMake(10, 10, 45, 45)];
            self.progressImage.progressImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:self.stickerURL];
            self.progressImage.progressDirection = M13ProgressViewImageProgressDirectionBottomToTop;
            self.progressImage.drawGreyscaleBackground = NO;

getting crash in M13ProgressViewPie.m

hello im not sure why but im getting this crash at :
[self.displayLink removeFromRunLoop:NSRunLoop.mainRunLoop forMode:NSRunLoopCommonModes];
not all the time but every few launches of the app

HUD memory leak

Just a note, in the example app,

UIWindow *window = ((AppDelegate *)[UIApplication sharedApplication].delegate).window;
[window addSubview:HUD];

Those 2 lines causes memory leak. Your HUD is not getting released when viewcontroller is getting popped off by the navigation controller. I profile this in my own app and the example app in M13ProgressSuite.

M13ProgressHUD was using >800mb of RAM before getting shut down by ios.

Each time you push onto a viewcontroller that contains the HUD about 2mb gets added and never released.

Just add the HUD onto your view instead of the window and the problems will be solved.

M13ProgressViewMetroAnimationShapeLine

Hi.
I'm not sure why but whenever I use the line shape M13ProgressViewMetroAnimationShapeLine with the metro HUD and when the view frame is not a square the line pattern is actually rotated.

Is that expected behaviour ?

Add possibility to set custom colors for StripedBar in UINavigationController

When I use white color as navigationBarTintColor in my NavigationController, striped bar becomes completely white.

Example:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
    [self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
    [self.navigationController.navigationBar setBarTintColor:[UIColor brownColor]];

    [self.navigationController showProgress];
    [self.navigationController setIndeterminate:YES];
}

bildschirmfoto 2014-04-30 um 14 54 19

HUD.status hiding after a very short time

The status is only displayed for a very short time and after that disappears, even with the simple thing like this:

_hud = [[M13ProgressHUD alloc] initWithProgressView:[[M13ProgressViewRing alloc] init]];
_hud.progressViewSize = CGSizeMake(60.0, 60.0);
[_uiBgImageView addSubview:_hud];
[_hud setMaskType:M13ProgressHUDMaskTypeSolidColor];
[_hud setIndeterminate:YES];
[_hud show:YES];
_hud.status = @"Loading...";

M13ProgressHUD stays visible too long after complete

I have some logic to determine which progress to show, one for 6 and one for 7, as M13ProgressHUD works great with iOS7.

I am using 'performSelectorOnMainThread' to show the 6 version and it works just fine and disappears promptly when 100% complete. In my app, the updates (10% ... 100%) to these alerts need to run in a thread so the processing is not blocked, so basically a modal alert view, probably basic premise.

When the iOS 7 device runs with this HUD, all is good until 100%, where the dialog shows for about 7 seconds before disappearing -- way too long. How can I run this without blocking the bg process and shutdown quickly when done, as you do in your demo. The demo, however, is not processing anything so the example is not exactly my use case.

Thanks !

Crash when removing CADisplayLink from run loop.

I keep getting a crash when the display link is removed from runloop - delta is above 1.0:
https://github.com/Marxon13/M13ProgressSuite/blob/master/Classes/NavigationController/UINavigationController%2BM13ProgressViewBar.m#L62

A fix is to invalidate the display link rather than removing from run loop:

        if (dt >= 1.0) {
            //Order is important! Otherwise concurrency will cause errors, because setProgress: will detect an animation in progress and try to stop it by itself. Once over one, set to actual progress amount. Animation is over.
            [displayLink invalidate];
            [self setDisplayLink:nil];
            [self setProgress:[self getAnimationToValue]];
            return;
        }

Auto property synthesis will not synthesize property 'progress' because it is 'readwrite' but it will be synthesized 'readonly' via another property

Pods/M13ProgressSuite/Classes/ProgressViews/M13ProgressViewBar.m:30:42: Auto property synthesis will not synthesize property 'progress' because it is 'readwrite' but it will be synthesized 'readonly' via another property

Pods/M13ProgressSuite/Classes/ProgressViews/M13ProgressViewBorderedBar.m:26:42: Auto property synthesis will not synthesize property 'progress' because it is 'readwrite' but it will be synthesized 'readonly' via another property

Pods/M13ProgressSuite/Classes/ProgressViews/M13ProgressViewFilteredImage.m:27:42: Auto property synthesis will not synthesize property 'progress' because it is 'readwrite' but it will be synthesized 'readonly' via another property

Pods/M13ProgressSuite/Classes/ProgressViews/M13ProgressViewRing.m:31:42: Auto property synthesis will not synthesize property 'progress' because it is 'readwrite' but it will be synthesized 'readonly' via another property

Segmented Ring Color

Hello, I am trying to change the color of the rings that are already filled in on the segmented ring color.
Here is the code I have but it doesn't seem to be doing the job:

UIColor *theColor = [UIColor colorWithRed:25/255.0 green:197/255.0 blue:255/255.0 alpha:1.0];
[_progressView setTintColor:theColor];

Any suggestions?

ProgressViewRing does not remove the progress path when performAction is set to Success.

I've noticed when I render a ring (for example a download), and the download completes and then I update the ring with performAction = success, then the check is drawn, but the progress ring remains where it is. i have other cells with the ring which immediately show the success, and those have no progress path drawn, and look thinner.

In M13ProgressViewRing.m in the function drawSuccess - if I add a line like this:
[_progressLayer removeFromSuperlayer];

Then the progress ring is removed and things look consistent. I am posting this issue to see if the design intent was not to update the progress ring path.

HUD. show

Would be great to see ProgressHUD with 'show' method, where all stuff is encapsulated.

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.