Code Monkey home page Code Monkey logo

alternate-java-bridge-library's Introduction

/*
* 
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

This  is a repository of publically available pieces to use along with Java  Bridge. It's original intent was to eliminate the need for installing  the Kawa library. It also adds additional functionality.

Contents:
src/com/xiledsystems/AlternateJavaBridgelib/
 This contains all the source files contained within the AlternatJavaBridgelib.far file.
 
src/com/xiledsystems/samples/
 This contains source code for examples using the library
 
 jar/AlternateJavaBridgelib.jar
 This jar file contains the library components to use when using java to build Android applications.
 

alternate-java-bridge-library's People

Watchers

 avatar  avatar

alternate-java-bridge-library's Issues

Paypal Here API

This is LOW priority item.  Only mentioning it because I defienitely will want 
to use this down the road, so I don't want to forget to add it.

BRIEFLY looking at the paypal api, it appears that you can use a soap class, 
which is good because we have that already.  Here is a link to some of their 
API information.

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/howt
o_api_overview

Now I recommend not doing any work on this yet, as this is their standard API.  
I have a feeling they will be changing this relatively soon with the upcoming 
release of "Paypal here" their "Square" like device for the paypal app that 
lets users swipe credit cards and pay directly on your device.

So the idea is, you are in your app, and you are with a client who owes you 
money.  The paypal here features, allow you to swipe the users credit card 
right on your phone to collect payment.  My guess is, with the release of 
PayPal here (sometime in the next couple of months), they will update the API 
to integrate more with their actual application (this is all a guess on my 
part).

Here is some information on PayPal here:
https://www.paypal.com/webapps/mpp/credit-card-reader

I'll post again down the road once either the feature gets released...and/or I 
finish EVERY thing else on my app :)

Original issue reported on code.google.com by [email protected] on 7 May 2012 at 1:07

calendar / content provider classes

Please add a class to handle the new Calendar functionality introduced in API 
Level 14.  The purpose of this feature is to hide the complexity of using the 
content provider android framework.  An example would be creating a calendar 
component that would work like...

private Calendar myGoogleCalendar = new Calendar(then context to choose a 
specific calendar, in this case google calendar).

Some functions requested are...

myGoogleCalendar.AddEvent (String for each calendar option)  {
    Allows user to call AddEvent and supply details for a calendar to be stored as a new event.  
}

myGoogleCalendar.readAgenda (int numberOfUpComingEventsYouWantReturned) {
     This event should return an array of records.  The records should be the next events for the user of the calendar.  The number of events is passed)

myGoogleCalendar.readEvents (stuff) {
     Not sure how to implement this, but I would like some sort of search method.  For my specific usage, I am creating calendar events for my customers.  SO i want to be able to search for events where that customer is in the subject, or description, or something and have those events returned.
}    

Original issue reported on code.google.com by [email protected] on 17 Feb 2012 at 1:33

DropBox API addition

Please add a method for checking if a file already exists or not.  This way we 
can ask the user if they want to override or not instead of making that 
decision for them.

the method should return true if the file exists, false if it doesn't.

Original issue reported on code.google.com by [email protected] on 17 May 2012 at 5:59

More robust spritesheet capability

Allow use of more varied sprite sheets. At the moment, only an ImageSprite can 
use a spritesheet, and that's only if the spritesheet is aligned in a certain 
manner.

It would also be useful for other components as well. If using a lot of 
different images (or a lot of components which use an image), it may be better 
performance wise to use a spritesheet, rather than loading seperate files.

For instance, I have a view with 7 rows of 7 columns of buttons. That's 49 
buttons. They all have an image as their background (though there are only 
really a few different actual images). It would be better for performance to 
load one sprite sheet, then apply whichever frame to whichever component.

Using TexturePacker, you can generate a spritesheet easily. This also generates 
a data file, which the altbridge will read, so it knows the locations of the 
different frames.

Original issue reported on code.google.com by [email protected] on 4 May 2012 at 1:28

Add Hide() method to hide a visible component

This method would make the component invisible, without giving up the portion 
of the screen it's in. Normally, when you set a component to Visible(false), it 
completely disappears, and it's as if it never existed. However, there is at 
least one case I can think of where you'd want the component to be "invisible", 
but it's space not removed.

When running a view animation upon a Form starting up, let's say you want it to 
slide in from the top, down to it's normal sitting position. If you need to 
access the component's width/height for any reason, it would report as 0, if 
the component was set to Visible(false), as it's no longer even on screen. With 
the Hide() method, it will no longer be shown on screen, but the space that it 
occupied is just filled with whatever background is behind it (this depends on 
the theme, and if you have any views behind it).

This was way more complicated than I meant it to be. Basically, if you need the 
physical dimensions of a component while it's not actually shown, use the 
Hide() method. To unhide, just use Visible(true).


Original issue reported on code.google.com by [email protected] on 2 May 2012 at 3:13

RadioGroup component

Simple Radio group component to go alone with the view.  The only requested 
function is something like 

Public String Selection() {
    //return the currently checked box as a string when called
}

can't think of any other function except maybe a "Clear" function?

I am going to enter RadioButton (or whatever you want to call it) as a separate 
component.  When thinking about this in the bigger picture it made more sense 
this way.

Original issue reported on code.google.com by [email protected] on 22 Feb 2012 at 2:26

New methods for ListPicker - SelectionFirst and SelectionSecond for two line lists

This is a LOW PRIORITY item.  It would be a nice convienance.  When using a two 
line list after a user makes a selection, this would return either the first 
line in the selection, or the second line in the selection.  Something like 
this (excuse the names...couldnt think of anything good).

In this example, there is a two line list, the user selects the item that looks 
like this:
006
John Smith vs the State of Alabama

private String SelectionFirst() {
/*    In a two line list, when user makes selection, it returns the item on the 
first line (the bolded item).  SO in this example, it would return "0451113"  */
}

private String SelectionSecond() {
/*   In a two line list, when the user makes a selection, this returns the item 
on the second line (the smaller text item).  So in this example, it would 
return "John Smith vs the State of ALabama"    */
}

again, this is a LOW PRIORITY item

Original issue reported on code.google.com by [email protected] on 18 Mar 2012 at 2:59

SimplSQL rowid issue

What steps will reproduce the problem?
1. add multiple tables to a database
2. insert 5 items into table 1
3. insert 5 items into table 2
4. insert 5 items into table 3
5. for table 2, the 5 items are entered with row id's 6 - 10 and for table 3 
row id's 11 - 15.  All tables should have 5 records with rowids 1 - 5 on each 
table.

What is the expected output? What do you see instead?
each table when adding information should start with rowid = 1

What version of the product are you using? On what operating system?
Latest Jar from 3/14, Windows 7 64 bit

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 16 Mar 2012 at 1:29

Prefs class added.

This is another way to store data persistantly. It uses android's built in 
SharedPreferences. It's great for small amounts of data (like preferences). It 
allows storing of booleans, ints, longs, Strings, and Set<String>.


Original issue reported on code.google.com by [email protected] on 7 May 2012 at 1:44

Auto run fusion tables in a separate thread

I can't think of any reason why someone would not want to run their FT queries 
in a separate thread...but just in case...maybe just add a new method 
QueryInThread(); that does the same thing as query, but in a separate thread...


Original issue reported on code.google.com by [email protected] on 1 May 2012 at 7:08

ClearTable in SimpleSQL deletes table, it doesn't clear it

What steps will reproduce the problem?
1. Create a table
2. Enter some data
3. Use ClearTable method to clear out the data
4. Instead of emptying the table, the table is deleted completely from the 
database

What is the expected output? What do you see instead?
I expect the table to have all rows removed but to stay in tact ready to accept 
new records, instead, the table is deleted from the database completely.

What version of the product are you using? On what operating system?
Latest jar 3/17. Windows 7 64 bit

Please provide any additional information below.
Confirmed via SQLlite Editor that the table is removed exactly after the 
ClearTable method is implemented.  

***NOTE*** - The ability to delete a table is a great function.  Perhaps after 
fixing this issue, the original version of ClearTable() can be implemented as 
"DeleteTable()"

Original issue reported on code.google.com by [email protected] on 18 Mar 2012 at 3:14

SpriteSheetHelper public class added.

This class makes using a sprite sheet made with Texture Packer easy.

SpriteSheetHelper helper = new SpriteSheetHelper(this, R.drawable.spritesheet);
helper.loadSheetData("spritesheet.json");


The json file needs to be put in the /assets folder.

Along with using it for an imagesprite for animations, you can put a bunch of 
images into one spritesheet and use that one large image to assign all of your 
visible components.

Original issue reported on code.google.com by [email protected] on 5 May 2012 at 7:33

Widget support

Please add support for automating the use of widgets in an easy format.  
Specifically, looking to handle the widget class inside of the bridge, allowing 
for the intents and broadcast receivers all to be handled without the user 
having to do anything.

if possible, would like to implement the widget as a component in the bridge 
(not sure if this is possible though).  Ideally then you would have a "click" 
event for the widget.  The user should be able to make all adjustments inside 
the click event, including changing the widget's graphic if needed. (Not sure 
how this would work with active widget, this is more for widgets that do a 
simple process of....load up with a graphic image...click the widget, stuff 
happens and the widget changes to a different graphic.)

Original issue reported on code.google.com by [email protected] on 9 Apr 2012 at 2:19

RadioCheckbox Component

This would be a great component to go along with the RadioGroup component.  
Since RadioCheckboxes (not sure what they are really called, so feel free to 
rename it properly) have their own id's just like RadioGroups, I felt they 
deserved their own component.

Here are some examples of some functions that would be great.

public boolean currentStatus(String nameOfRadioCheckBox) {
    //returns true if the component passed is selected, otherwise returns false
}

public boolean settStatus(String nameOfRadioCheckbox, boolean true/false) {
    //allows you to set the specific Status of a specific RadioCheckbox
    //Obviously if you set one of them to true, it would make whatever was 
    //already checked, unchecked

    return true/false //return true if you had to clear a different
                      //checkboxes status, false if they were clear already
}

public void settStatus(String nameOfRadioCheckbox, boolean true/false) {
    //allows you to set the specific Status of a specific RadioCheckbox
    //Obviously if you set one of them to true, it would make whatever was 
    //already checked, unchecked
    }

Original issue reported on code.google.com by [email protected] on 22 Feb 2012 at 2:34

New method for notifier - ShowMultiChoose

MultiChoose would work EXACTLY the same way as ShowChooseDialogue does now, 
only it would have more than 2 button choices.  Really, I am looking for an 
option to have 3 buttons here, because I am having a hard time thinking of when 
I would need more than 3, but I'm sure it would come up.  So it may be best to 
make the method more flexibile.  Maybe something like this....

@param Options - number of choices to display
@param buttonText - a string array that matches the int Options in size
public void ShowMultiChooseDialog(int Options, String message, String title, 
String [] buttonText) {
   //Works the same way as ShowChooseDialouge, when the event gets dispatched, it returns the text of the button the user pressed.
}

Original issue reported on code.google.com by [email protected] on 11 May 2012 at 1:00

Components for layout views not working properly

What steps will reproduce the problem?
1.  Create a layout view in the GLE or in XML
2.  Declare a component for that layout (i.e. private TableLayout layout;
3.  Try and instantiate it, there does not seem to be a proper way to 
instantiate this like other components.

What is the expected output? What do you see instead?
I expect to see new TableLayout(this, R.id.TableLayout), instead I see new 
TableLayout(this, int, int).

What version of the product are you using? On what operating system?
Latest version, Win 7 64 bit

Please provide any additional information below.
For now, if you use the regular views, as pointed out by ryan (built in to 
android), you can instantiate like this....

android.widget.TableLayout layout = (android.widget.TableLayout) 
findViewById(R.id.tableLayout1);

This works, but is inconsistent with the rest of the bridge

LOW PRIORITY

Original issue reported on code.google.com by [email protected] on 3 May 2012 at 8:19

Button text gets overriden

When using AB_Button, if you set the Text from within the designer, the text 
doesn't show when the app is run. Instead, the text is always set to "Button".

To workaround this for now, set the text manually in code:

button.Text("buttontext");

This will be fixed in the next release.

Original issue reported on code.google.com by [email protected] on 4 Jan 2012 at 3:45

SheetReader class added

This is an internal class used to read sprite sheet data info. This is specific 
to the Tecture Packer program http://www.texturepacker.com/

More specifically, it process the JSON output data file that Texture Packer 
produces.

This can be used freely, if you change the options to use the basic features 
(basically just fit your images into one file, then save the one file out, with 
the data file).

Original issue reported on code.google.com by [email protected] on 5 May 2012 at 7:28

Add Toggle class

Add a toggle button class.

This works like a checkbox, in that it throws the "Changed" event (and a 
boolean if it's on or off).



Original issue reported on code.google.com by [email protected] on 10 May 2012 at 3:15

Add method to change accelerometer sensor speed

Added MaxSpeed(boolean maxspeed). This will increase the sensor's output to 
SENSOR_DELAY_FASTEST. This will drain the battery more, but provide a faster 
responding accelerometer (good for games using the accelerometer).

Using false (this is the default) will result in the Accelerometer falling to 
the SENSOR_DELAY_GAME setting.

Original issue reported on code.google.com by [email protected] on 17 May 2012 at 3:34

New Event --> LongClick

Please add a Long click eventhandler for any item that can currently handle a 
click event.

TH=is would all for anything from a single operation upon long click, to a 
popup menu.  

Thanks

Original issue reported on code.google.com by [email protected] on 8 May 2012 at 4:49

Method for checking internet / network states

It would probably be helpful to have a class that has methods for checking 
network states.  some examples of useful items would be

boolean internet { returns true if you have internet access, and false if you 
don't}

String state { returns "3g" if connected to 3g, "4g" if connected to 4g, "Wifi" 
if connected to wifi, "2g" if connected to 2g, or "offline" if not online }

what we need is here

http://stackoverflow.com/questions/2326767/how-do-you-check-the-internet-connect
ion-in-android

Original issue reported on code.google.com by [email protected] on 14 May 2012 at 4:29

Crash when setting animation points

What steps will reproduce the problem?
1. Use any view, and set animation points

What is the expected output? What do you see instead?
It should set the animation points. Instead, it crashes with a null pointer 
exception.


Original issue reported on code.google.com by [email protected] on 30 Apr 2012 at 5:42

Customized Default Form

I would like a way to customize the default form that is created when using the 
right click option and choosing "Create new Form (AltBridge)".  I find that I 
have some areas I add for every form, even if they are just comments to help me 
get organized.  It would be very helpful to be able to automatically implement 
them.  

Or maybe a better option, a way to create a new right click option called 
"Create new customized Form (AltBridge)"?

Original issue reported on code.google.com by [email protected] on 20 Feb 2012 at 2:25

Direct access to change network mode (4g toggle)

This will probably not happen until sometime after Jellybean has already come 
out....and so I don't expect it to actually get done, but I have futilely been 
searching for a way to programatically change the raido from 4glte to cdma.  

And to clarify, I would be ok with having to have root access to do this (since 
all my phones are rooted anyway).

So this is more to track all the info I find so it is stored in 1 place.  I'll 
start off by posting what i found on some motorola forums.  Haven't tried this, 
I doubt it will work but I found this....

Hi,

I found some way in RilDataProvider.class (ProgramMode.apk):

  private RilDataProvider()

  {

    mPhone = PhoneFactory.getDefaultPhone();

  }

public void setPreferredNetworkType(RilDataCallback.RIL_NETWORK_MODE 
paramRIL_NETWORK_MODE)

  {

    mNetWorkMode = paramRIL_NETWORK_MODE.toInt();

    Message localMessage = mHandler.obtainMessage(73);

    Phone localPhone = mPhone;

    int i = paramRIL_NETWORK_MODE.toInt();

    localPhone.setPreferredNetworkType(i, localMessage);

  }

===============================================

RIL_NETWORK_MODE_CDMA = 4

RIL_NETWORK_MODE_CDMA_NO_EVDO = 5

RIL_NETWORK_MODE_EVDO_NO_CDMA = 6

RIL_NETWORK_MODE_LTE_EVDO_CDMA = 7

IL_NETWORK_MODE_LTE_ONLY = 8

Original issue reported on code.google.com by [email protected] on 3 May 2012 at 2:57

additional methods for SoapHelper

It appears that when I use this I will be using it dynamically.  The URL stays 
the same, but the method and name/value pairs will need to be cleared out to 
submit a new item.  I am requesting either a way to clear out the SoapHelper 
component, or destroy.  Unless I am wrong...maybe it is not a problem to keep 
creating new Soap components, but it seems wasteful to me.  Plus if you don't 
know how many you are going to need it will be hard to keep track of them all.

So request is for:

SoapHelper.DestroyDataAll(){
    //Destroys the data but keeps the method and url (you can always reset them yourself with the set method).  This is ideal as I may need to submit 5 methods where the only thing that changes is the data)
}





Original issue reported on code.google.com by [email protected] on 7 Mar 2012 at 12:27

GoogleIssues Client class (or GI_Client)

Please add a class to handle the GoogleIssues API, similar to the DropBox and 
FusionTables API.  The documentation is straight forward but after messing 
around with it for a few hours I realized it is probably something that would 
be reused like dropbox and fusion tables, so it should prob go in the bridge

Basic documentation and instructions here
http://code.google.com/p/support/wiki/IssueTrackerAPIJava

You need the gdata-projecthosting-2.1.jar file
I THINK you need the gdata-client-1.0.jar file as well but not sure
and I am not sure about the gdata-core-1.0.jar or gdata-base-1.0.jar, but its 
possible



Original issue reported on code.google.com by [email protected] on 5 May 2012 at 4:14

Prompt for DropDown component not displaying

What steps will reproduce the problem?
1. Create a DropDown component in the GLE and in your code
2. Add items to the DropDown component each time the app starts
3. Set a prompt for the DropDown in the GLE

What is the expected output? What do you see instead?
I expect to the see the prompt I set in the GLE, instead I see the first item 
in the dropdown component list as the displayed prompt.

What version of the product are you using? On what operating system?
2.2.32
Win764 bit

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 11 May 2012 at 1:14

TimeClock.Reset() method

Please add a method for resetting the TimeClock.

So if i have a clock running, that I want to start over and run again, i would 
want to....

TimeClock.Start();
TimeClock.Stop();
TimeClock.Reset();
TimeClock.Start():     //Now the clock is starting again from 0 counting up.  
All other methods reflect as if it just started for the first time as a new 
clock.

Original issue reported on code.google.com by [email protected] on 1 May 2012 at 2:03

AnimCanvas background color not loading properly

What steps will reproduce the problem?
1. Place an AnimCanvas with the GLE.
2. Set the AnimCanvas's background to a color resource.
3. Build the app based off an SDK Level lower than 11 (Honeycomb 3.0)

What is the expected output? What do you see instead?
App should load the background color, and assign it to the AnimCanvas' 
backgroud like how it looks in the GLE. This doesn't happen because the 
getColor() method in APIs lower than 11 doesn't exist. Things work fine when 
building off higher API levels (target SDK).




Original issue reported on code.google.com by [email protected] on 9 Apr 2012 at 8:18

.toInt function

I know this is kind of silly, because it doesn't save you much coding, but it 
simplifies things and is easy to remember.

My request is to have a .toInt() function that will convert a string to an 
integer just like

Integer.parseInt();

I only request it because i am sure it is super easy to add to the bridge.  Low 
priority...thanks.

Original issue reported on code.google.com by [email protected] on 11 Mar 2012 at 5:40

DatePicker Bridge component with matching GLE view

Please create a DatePicker component for the GLE that we can drop in.  

Then in the activity you would do

private DatePicker myDatePicker = new DatePicker(this, R.id.DatePickerObject) 

then some methods for returning different date formats


Original issue reported on code.google.com by [email protected] on 17 Feb 2012 at 1:53

elements from DoubleList function for listpicker.

I am looking for a way to easily make a listpicker use a DoubleList to populate 
properly for allowing a 2 list view such as android.r.layout.simple_list_item_2.

so it would work that you have a DoubleList called myDoubleList and a 
listpicker call myListPicker and you would do

myListPicker.ElementsFromDoubleList(myDoubleList) {
   //This, just like the elements from array feature would populate the         listpicker properly to handle a 2 item list view
}

Original issue reported on code.google.com by [email protected] on 11 Mar 2012 at 1:17

Switch component and GLE equivalent

I am not sure how this is handled in android, so going off what i think.  My 
thoughts are its probably best to do this as a boolean.  True is on.  False is 
off.  But it could also be done as an int, 0 and 1.  And what I mean by this is 
what the status method would be.

like Switch.Status() would return true or 1 for on, and false or 0 for off.  I 
think right?

along with this should be a method for Switch.Status(boolean/int) so that you 
can set the status programmatically.

Can't think of what else someone would use.  Maybe a method like Switch.Count() 
that returns the number of times the switch has been flipped?  (If so a 
Switch.Reset() should be made to reset this).

There should probably be events too.  Well actually the only event I can think 
of is "Switched", or "Flipped", or whatever, when the switch changes.

I guess maybe an event for "On", and one for "Off", might make things insanely 
easy....?

All of this is just off the top of my head cause i need to use a switch now.  I 
can work with whatever functionality you provide...and oh ya, if this already 
exists I am gonna kick myself, cause i just wasted a lot of time. (couldn't 
find it...i looked).

Original issue reported on code.google.com by [email protected] on 3 May 2012 at 12:55

fix spelling in DateSelector component

What steps will reproduce the problem?
1.N/A
What is the expected output? What do you see instead?
N/A

What version of the product are you using? On what operating system?
Latest, Win 7 64 bit

Please provide any additional information below.

It was spelled DateSelecter, I believe it should be DateSelector instead

Original issue reported on code.google.com by [email protected] on 11 Mar 2012 at 2:31

"AfterSelection" event constantly getting triggered

What steps will reproduce the problem?
1.Create a dropdown component
2.set up an event dispatch to look for "AfterSelection" of that component
3. That event is triggering as true anytime the dispatchEvent is being run 
(including when the form loads).  So essentially, this event ALWAYS gets 
triggered

What is the expected output? What do you see instead?
It should only be triggered when the user has actually selected something from 
the drop down

What version of the product are you using? On what operating system?
latest jar - 5-8-12

Please provide any additional information below.

HIGH PRIORITY

Original issue reported on code.google.com by [email protected] on 8 May 2012 at 6:57

add OAUTH2 access for Fusion tables

OAUTH2 should probably be handled separetly as it can be used in a lot of 
different things...but once written should be integrated in to the Fusion Table 
class to replace (or compliment) the soon to be deprecated client login.

Original issue reported on code.google.com by [email protected] on 1 May 2012 at 7:10

Bridge component and GLE equivalent for the progress bar

I would like an easy to use Bridge equivalent that works like the GLE component 
progress bar.  The spinning circle in the middle of the screen, not the actualy 
BAR version.  The bar version would be a great addition later, but for now, the 
simple component, with some basic features like ProgressBar.enabled(true/false) 
would be great. 

I know there is an easy to use version for the title bar, but I would like one 
on the main screen instead.

Original issue reported on code.google.com by [email protected] on 27 Mar 2012 at 1:38

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.