├── .eslintrc.json ├── .gitignore ├── .jsbeautifyrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── coc.html ├── convince-my-boss.docx ├── convince-my-boss.html ├── convince-my-boss.txt ├── custom └── css │ ├── accordion.css │ ├── animate.css │ ├── bootstrap.css │ ├── bootstrap.min.css │ ├── buttons.css │ ├── scroll.css │ └── style.css ├── data ├── schedule.json ├── speakers.json └── sponsors.json ├── faq.html ├── font-awesome ├── css │ ├── font-awesome.css │ └── font-awesome.min.css ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ └── fontawesome-webfont.woff ├── less │ ├── bordered-pulled.less │ ├── core.less │ ├── fixed-width.less │ ├── font-awesome.less │ ├── icons.less │ ├── larger.less │ ├── list.less │ ├── mixins.less │ ├── path.less │ ├── rotated-flipped.less │ ├── spinning.less │ ├── stacked.less │ └── variables.less └── scss │ ├── _bordered-pulled.scss │ ├── _core.scss │ ├── _fixed-width.scss │ ├── _icons.scss │ ├── _larger.scss │ ├── _list.scss │ ├── _mixins.scss │ ├── _path.scss │ ├── _rotated-flipped.scss │ ├── _spinning.scss │ ├── _stacked.scss │ ├── _variables.scss │ └── font-awesome.scss ├── fonts ├── glyphicons-halflings-regular.eot ├── glyphicons-halflings-regular.svg ├── glyphicons-halflings-regular.ttf └── glyphicons-halflings-regular.woff ├── hotels.html ├── icons ├── android-icon-144x144.png ├── android-icon-192x192.png ├── android-icon-36x36.png ├── android-icon-48x48.png ├── android-icon-72x72.png ├── android-icon-96x96.png ├── apple-icon-114x114.png ├── apple-icon-120x120.png ├── apple-icon-144x144.png ├── apple-icon-152x152.png ├── apple-icon-180x180.png ├── apple-icon-57x57.png ├── apple-icon-60x60.png ├── apple-icon-72x72.png ├── apple-icon-76x76.png ├── apple-icon-precomposed.png ├── apple-icon.png ├── browserconfig.xml ├── favicon-16x16.png ├── favicon-32x32.png ├── favicon-96x96.png ├── favicon.ico ├── manifest.json ├── ms-icon-144x144.png ├── ms-icon-150x150.png ├── ms-icon-310x310.png ├── ms-icon-70x70.png └── window-close-solid.svg ├── img ├── 10.png ├── armin-ronacher.png ├── arrow-right .png ├── arrow-right.png ├── banner-logo.png ├── bg.png ├── bg1.jpg ├── border1.png ├── border2.png ├── card-bg1.jpg ├── card-image.jpg ├── carol-willing.png ├── circle1.png ├── circle2.png ├── dots.png ├── favicon.png ├── fb.png ├── footer-logo.png ├── left-arrow.png ├── mail.png ├── main-banner.jpg ├── micro.png ├── oyo_rooms_contact_banner.png ├── pdfdownload.png ├── ran1.jpg ├── sidu-ponnappa.png ├── speaker.jpg ├── speaker.png ├── sponser1.png ├── sponser2.png ├── sponser3.png ├── sponsors │ ├── DBS_Logo.png │ ├── DESCO_Logo_2c.jpg │ ├── Elucidata.svg │ ├── LiveHealth_logo.png │ ├── Manninglogo_outline.png │ ├── Pramati.png │ ├── VMware_logo.jpg │ ├── aqr.jpg │ ├── atonarp.png │ ├── corteva.png │ ├── fossee.png │ ├── go-jek.png │ ├── google_developers.png │ ├── hackerrank.png │ ├── ibm.png │ ├── indeed.png │ ├── jetbrains.svg │ ├── logo-innovaccer-full.png │ ├── pipal.png │ ├── reckonsys.png │ ├── soroco.png │ ├── talent-sprint.png │ ├── zaubacloud.png │ └── zeomega.png ├── ticket-image.jpeg ├── timeline │ ├── PyCon2009.jpg │ ├── PyCon2010.jpg │ ├── PyCon2011.jpg │ ├── PyCon2012.jpg │ ├── PyCon2013.jpg │ ├── PyCon2014.jpg │ ├── PyCon2015.jpg │ ├── PyCon2016.jpg │ └── PyCon2017.jpg ├── travis-oliphant.png ├── twitt.png ├── venuebg.jpg ├── venuebg3.jpg └── wc.png ├── index.html ├── js ├── bootstrap.js ├── bootstrap.min.js ├── canvas.js ├── content.js ├── custom.js ├── index.js ├── index_canvas.js ├── jquery-1.10.2.js ├── jquery.easing.min.js ├── jquery.min.js ├── jquery.scrollTo.js ├── jtline.js ├── schedule.js ├── speaker.js ├── sponsor.js ├── timeline.js ├── twitterfetch.js └── wow.min.js ├── main-agenda.pdf ├── open-spaces.html ├── speakers.html ├── sponsorship.html ├── sponsorship_prospectus.pdf ├── ticket-transfer.txt ├── travel.html ├── volunteer.html └── workshop-prerequisites.html /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es6": true, 5 | "jquery": true 6 | }, 7 | "extends": "standard", 8 | "globals": { 9 | "angular": false, 10 | "WebSocket": false, 11 | "THREE": false 12 | }, 13 | "rules": { 14 | "brace-style": [2, "stroustrup"], 15 | "indent": ["error", 4], 16 | "max-len": [2, { 17 | "code": 120, 18 | "ignoreUrls": true 19 | }], 20 | "no-invalid-this": 1, 21 | "no-var": 0, 22 | "no-redeclare": "warn", 23 | "no-unused-vars": "warn", 24 | "one-var": ["off", "always"], 25 | "semi": [1, "always"] 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /.vs 2 | /.vscode 3 | /node_modules 4 | package-lock.json 5 | package.json 6 | *.ini 7 | PyCon 2018 India Logo.ico -------------------------------------------------------------------------------- /.jsbeautifyrc: -------------------------------------------------------------------------------- 1 | { 2 | "end_with_newline": true, 3 | "indent_char": " ", 4 | "indent_size": 4, 5 | "indent_with_tabs": false, 6 | "max_preserve_newlines": 3, 7 | "js": { 8 | "brace_style": "end-expand", 9 | "break_chained_methods": false, 10 | "indent_level": 0, 11 | "jslint_happy": false, 12 | "jslint_happy_align_switch_case": false, 13 | "keep_array_indentation": true, 14 | "space_after_anon_function": true, 15 | "space_before_conditional": true, 16 | "space_in_empty_paren": false, 17 | "space_in_paren": false, 18 | "wrap_attributes": "auto", 19 | "wrap_line_length": 0 20 | }, 21 | 22 | "html": { 23 | "brace_style": "collapse", 24 | "extra_liners": ["head", "body", "/html"], 25 | "indent_body_inner_html": true, 26 | "indent_head_inner_html": true, 27 | "indent_inner_html": false, 28 | "unformatted": ["a", "sub", "sup", "b", "i", "u"], 29 | "wrap_attributes": "auto", 30 | "wrap_attributes_indent_size": 4, 31 | "wrap_line_length": 120 32 | }, 33 | 34 | "css": { 35 | "convert_quotes": "single", 36 | "selector_separator_newline": true, 37 | "space_around_selector_separator": true 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at contact@in.pycon.org. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] 44 | 45 | [homepage]: http://contributor-covenant.org 46 | [version]: http://contributor-covenant.org/version/1/4/ 47 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Thanks for your interest in contributing to PyCon India 2018 website. Your valuable contribution is much appreciated. 4 | 5 | The following is a set of guidelines for contributing to PyCon India 2018. 6 | 7 | ## How Can I Help? 8 | 9 | Start looking through the issues and watch out for any issues with the `bug` or `help wanted` labels. Issues marked with these labels haven't been assigned to anyone yet and we would love for you to work on them. 10 | 11 | ### Request a feature 12 | 13 | If you think there is a cool feature you would like to add please create an issue for that and we will assign that to you if the feature looks good to add. 14 | 15 | ## Reporting bugs 16 | 17 | If you find any bugs, it would be great if you would let us know so we can look into it. You can do so by creating an issue. If you don't know how to create an issue, please follow [these instructions](https://help.github.com/articles/creating-an-issue/). Screenshots and notes for how you encountered the bug are really helpful when reporting bugs! 18 | 19 | ## Creating Pull Requests 20 | 21 | After you've created a patch that fixes an issue, please submit a pull request for it. Mention **@pythonindia/pycon-2018-team** to get the Pull Request reviewed. If you're not sure how to create a pull request, please follow [these instructions](https://help.github.com/articles/creating-a-pull-request/). In general we'd like to ask you to please target the master branch with your pull requests. 22 | 23 | We recommend creating a new branch for each feature task/bug since it makes easier to edit commits in future if needed. 24 | 25 | ## Reviewing Issues and Pull Requests 26 | 27 | You're welcome to review issues and pull requests, provide feedback, and answer questions. Please remember to be friendly and respectful when commenting on issues or pull requests, and always follow our [Code of Conduct](https://in.pycon.org/2018/coc.html). It's okay for people to make mistakes and ask questions! 28 | 29 | 30 | ## How Can I Get Help? 31 | 32 | If you have a question or need help, please leave a comment on the issue you have a question about or are working on. We will try to answer your question and help you as soon as possible. 33 | 34 | If you are stuck on some issue and would like help from someone in the community you can ask help in the mailing list of PyCon India. Be sure to mention the Issue # and mention **Website Contribution** in Subject line so it will be easier for people to help you in this regard. 35 | 36 | ## Workflow & Merging Pull Requests 37 | 38 | - We will be using master branch for development and gh-pages branch for viewing the website directly using github pages 39 | 40 | - Reviews to Pull Request created can be requested by mentioning **@pythonindia/pycon-2018-team** in the Pull Request body or comments 41 | 42 | - Anyone is free to Review any Pull Request but merge access will be limited to the Web Working Group of PyCon India 2018 43 | 44 | - Feature Changes will be reviewed by the Web Working Group or other contributors, while Hotfixes can be merged without a review or even directly pushed by the Web Working group without the need of a PR 45 | 46 | 47 | 48 | The Contribution Guidelines have been based on CONTRIBUTING.md from the [2017 DjangoCon U.S. website repo](https://github.com/djangocon/2017.djangocon.us) 49 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | The assets in this repository are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. 2 | 3 | Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PyCon India 2018 Website 2 | This is the official website of PyCon India 2018, the Premier Conference in India on using and developing the Python Programming Language. 3 | 4 | The PyCon India 2018 Website is a website purely made of html, css and javascript/jQuery 5 | 6 | ## Contributing to the Website 7 | 8 | Please read our [Contribution Guidelines](CONTRIBUTING.md) to Contribute to the Website 9 | 10 | ## Code of Conduct 11 | 12 | As a contributor please follow the [Code of Conduct](CODE_OF_CONDUCT.md) to keep the community open and inclusive. Also please read and follow the [PyCon India Code of Coduct](https://in.pycon.org/2018/coc.html) which governs the overall Conduct for the Conference. 13 | 14 | ## License 15 | 16 | [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](LICENSE.md) 17 | -------------------------------------------------------------------------------- /convince-my-boss.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/convince-my-boss.docx -------------------------------------------------------------------------------- /convince-my-boss.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | PyCon India 2018 in Hyderabad | October 5th to 9th 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 57 | 109 | 110 |
111 |
112 |
113 |

Convince My Boss

114 |

115 | Do you want to attend PyCon India, this year? Not sure how to pitch the same to your boss. Well, we are here to help. Leave 116 | the hard work to us, use this letter as template and edit it to help make your case. We hope to see you at PyCon 117 | India 2018, tickets are available here. For downloads, please refer to this section. 118 |

119 |
120 |

Dear {bossName},

121 | 122 |

I’d like to attend the upcoming PyCon India 2018 conference taking place October 5-9, 2018 in Hyderabad, India. PyCon's 123 | are premier conferences about developing and using the Python programming language. It attracts the best programmers, 124 | experts, enthusiasts, community leaders, entrepreneurs, and even college students from all corners of the country 125 | and abroad.

126 |

The event focuses on key aspects of sharing knowledge and experience, solving important issues together, learning 127 | and collaborating, meeting and network with the best and brightest in the community in an open-source ecosystem.

128 |

About a 1000+ of the industry's most dedicated and experienced individuals from different fields are bound to be 129 | in attendance for the 10th edition of this mega event. An opportunity like this is crucial for our company’s growth 130 | and development.

131 |

Here's how my presence at PyCon India 2018 could effectively help us and our brand get exposed to an ocean full of 132 | opportunities that we are yet to explore.

133 |

134 |

    135 |
  • 136 |

    PyCon India aims at bringing folks who love Python under one roof and create a healthy environment to learn. 137 | Fusing together fields of Data analysis, ML/AI, Automation, Web development, Software development and more.

    138 |
  • 139 | 140 |
  • 141 |

    It's a unique chance to create strategic partnerships and promote our company's brand at the forefront of the 142 | Python Community in India, by gathering valuable insights on current market trends and also recruiting fresh 143 | talent. 144 |

    145 |
  • 146 | 147 |
  • 148 |

    PyCon India is also a learning opportunity, offering a wide array of talks, workshops, keynotes, developer 149 | sprints strung together in a packed schedule each day divided by various tracks that people could follow.

    150 |
  • 151 | 152 |
  • 153 |

    Each presented by industry experts, community leaders and many young minds delving into new technologies and 154 | latest trends in the market. Some including ML/AI, Automation, Embedded Systems, Networking, Security, Web 155 | Development. 156 |

    157 |
  • 158 | 159 |
  • 160 |

    I will also be meeting top technical minds, brainstorm with them on ideas, challenges, and best practices. 161 | Collaborate with them on projects and solve technical issues.

    162 |
  • 163 |
164 |

165 |

It is THE conference to go to for Python professionals. You can learn more about the conference and last year's 166 | talk and sessions here.

167 |

If I register before 30th of June, the fee is only 1200 rupees. Included in the conference ticket is access to all 168 | PyCon India keynotes and talks, sponsor showcase, community spaces (if included this time) and many other networking 169 | events, an official PyCon India T-shirt along with lunch and high-tea in the evening for both days (6th-7th October)

170 |

I would be happy to write a post-conference report detailing what I’ve learned and to recommend any changes that 171 | we could implement to improve our practices. Please let me know if you have any questions or concerns. I hope we 172 | can make this opportunity work.

173 |

Thank you, 174 |
{yourName}

175 |
176 | 182 |
183 |
184 | 185 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | -------------------------------------------------------------------------------- /convince-my-boss.txt: -------------------------------------------------------------------------------- 1 | Dear {bossName}, 2 | I’d like to attend the upcoming PyCon India 2018 conference taking place October 5-9, 2018 in Hyderabad, India. PyCon’s are premier conferences about developing and using the Python programming language. It attracts the best programmers, experts, enthusiasts, community leaders, entrepreneurs, and even college students from all corners of the country and abroad. 3 | The event focuses on key aspects of sharing knowledge and experience, solving important issues together, learning and collaborating, meeting and network with the best and brightest in the community in an open-source ecosystem. 4 | About a 1000+ of the industry's most dedicated and experienced individuals from different fields are bound to be in attendance for the 10th edition of this mega event. An opportunity like this is crucial for our company’s growth and development. 5 | Here's how my presence at PyCon India 2018 could effectively help us and our brand get exposed to an ocean full of opportunities that we are yet to explore. 6 | * PyCon India aims at bringing folks who love Python under one roof and create a healthy environment to learn. Fusing together fields of Data analysis, ML/AI, Automation, Web development, Software development and more. 7 | * It's a unique chance to create strategic partnerships and promote our company's brand at the forefront of the Python Community in India, by gathering valuable insights on current market trends and also recruiting fresh talent. 8 | * PyCon India is also a learning opportunity, offering a wide array of talks, workshops, keynotes, developer sprints strung together in a packed schedule each day divided by various tracks that people could follow. 9 | * Each presented by industry experts, community leaders and many young minds delving into new technologies and latest trends in the market. Some including ML/AI, Automation, Embedded Systems, Networking, Security, Web Development. 10 | * I will also be meeting top technical minds, brainstorm with them on ideas, challenges, and best practices. Collaborate with them on projects and solve technical issues. 11 | It is THE conference to go to for Python professionals. You can learn more about the conference and last year's talk and sessions (here)[https://www.in.pycon.org]. 12 | If I register before 30th of June, the fee is only 1200 rupees. Included in the conference ticket is access to all PyCon India keynotes and talks, sponsor showcase, community spaces (if included this time) and many other networking events, an official PyCon India T-shirt along with lunch and high-tea in the evening for both days (6th-7th October) 13 | I would be happy to write a post-conference report detailing what I’ve learned and to recommend any changes that we could implement to improve our practices. Please let me know if you have any questions or concerns. I hope we can make this opportunity work. 14 | Thank you, 15 | {yourName} -------------------------------------------------------------------------------- /custom/css/accordion.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | .pycon-que { 4 | background-color: #1b1b1b; 5 | color:#fff; 6 | cursor: pointer; 7 | width: 100%; 8 | border: none; 9 | text-align: left; 10 | outline: none; 11 | font-size: 15px; 12 | border-radius: 4px 4px 0px 0px; 13 | transition: 0.2s; 14 | padding: 10px 5px 5px 10px; 15 | } 16 | 17 | .active, .pycon-que:hover { 18 | color: #e23e89; 19 | } 20 | 21 | .panel { 22 | border-radius: 0px 0px 4px 4px; 23 | padding-right: 25px; 24 | text-align: justify; 25 | background-color: #3b3b3b; 26 | max-height: 0; 27 | overflow: hidden; 28 | color:#fff; 29 | transition: max-height 0.2s ease-out; 30 | } 31 | 32 | .faq-answer{ 33 | padding-top:10px; 34 | padding-bottom: 10px; 35 | } 36 | .faq-answer li a{ 37 | color: #e23e89 !important; 38 | } -------------------------------------------------------------------------------- /custom/css/scroll.css: -------------------------------------------------------------------------------- 1 | 2 | .jtline { 3 | opacity: 0; 4 | margin: 2em auto; 5 | -webkit-transition: opacity 0.2s; 6 | -moz-transition: opacity 0.2s; 7 | transition: opacity 0.2s; 8 | } 9 | .jtline::before { 10 | /* never visible - this is used in jQuery to check the current MQ */ 11 | content: 'mobile'; 12 | display: none; 13 | } 14 | .jtline.loaded { 15 | /* show the timeline after events position has been set (using JavaScript) */ 16 | opacity: 1; 17 | } 18 | .jtline .timeline { 19 | position: relative; 20 | height: 100px; 21 | width: 100%; 22 | max-width: 1000px; 23 | margin: 0 auto; 24 | } 25 | .jtline .events-wrapper { 26 | position: relative; 27 | height: 100%; 28 | margin: -20px 30px; 29 | overflow: hidden; 30 | } 31 | .jtline .events-wrapper::after, .jtline .events-wrapper::before { 32 | /* these are used to create a shadow effect at the sides of the timeline */ 33 | content: ''; 34 | position: absolute; 35 | z-index: 2; 36 | top: 0; 37 | height: 100%; 38 | width: 20px; 39 | } 40 | 41 | .jtline .events { 42 | /* this is the grey line/timeline */ 43 | position: absolute; 44 | z-index: 1; 45 | left: 0; 46 | top: 49px; 47 | height: 2px; 48 | /* width will be set using JavaScript */ 49 | background: #7754a3; 50 | -webkit-transition: -webkit-transform 0.4s; 51 | -moz-transition: -moz-transform 0.4s; 52 | transition: transform 0.4s; 53 | } 54 | .jtline .filling-line { 55 | /* this is used to create the green line filling the timeline */ 56 | position: absolute; 57 | z-index: 1; 58 | left: 0; 59 | top: 0; 60 | height: 100%; 61 | width: 100%; 62 | background-color: #513278; 63 | -webkit-transform: scaleX(0); 64 | -moz-transform: scaleX(0); 65 | -ms-transform: scaleX(0); 66 | -o-transform: scaleX(0); 67 | transform: scaleX(0); 68 | -webkit-transform-origin: left center; 69 | -moz-transform-origin: left center; 70 | -ms-transform-origin: left center; 71 | -o-transform-origin: left center; 72 | transform-origin: left center; 73 | -webkit-transition: -webkit-transform 0.3s; 74 | -moz-transition: -moz-transform 0.3s; 75 | transition: transform 0.3s; 76 | } 77 | .jtline .events a { 78 | position: absolute; 79 | bottom: 0; 80 | z-index: 2; 81 | text-align: center; 82 | font-size: 16px; 83 | padding-bottom: 15px; 84 | color: #383838; 85 | font-weight: 600; 86 | /* fix bug on Safari - text flickering while timeline translates */ 87 | -webkit-transform: translateZ(0); 88 | -moz-transform: translateZ(0); 89 | -ms-transform: translateZ(0); 90 | -o-transform: translateZ(0); 91 | transform: translateZ(0); 92 | } 93 | .jtline .events a::after { 94 | /* this is used to create the event spot */ 95 | content: ''; 96 | position: absolute; 97 | left: 50%; 98 | right: auto; 99 | -webkit-transform: translateX(-50%); 100 | -moz-transform: translateX(-50%); 101 | -ms-transform: translateX(-50%); 102 | -o-transform: translateX(-50%); 103 | transform: translateX(-50%); 104 | bottom: -5px; 105 | height: 17px; 106 | width: 17px; 107 | border-radius: 50%; 108 | border: 2px solid #dfdfdf; 109 | background-color: #fff; 110 | -webkit-transition: background-color 0.3s, border-color 0.3s; 111 | -moz-transition: background-color 0.3s, border-color 0.3s; 112 | transition: background-color 0.3s, border-color 0.3s; 113 | } 114 | .no-touch .jtline .events a:hover::after { 115 | background-color: #513278; 116 | border-color: #513278; 117 | } 118 | .jtline .events a.selected { 119 | pointer-events: none; 120 | color: #e23e89; 121 | } 122 | .jtline .events a.selected::after { 123 | background-color: #513278; 124 | border-color: #513278; 125 | } 126 | .jtline .events a.older-event::after { 127 | border-color: #513278; 128 | } 129 | @media only screen and (min-width: 1100px) { 130 | .jtline { 131 | margin: 10px auto; 132 | } 133 | .jtline::before { 134 | /* never visible - this is used in jQuery to check the current MQ */ 135 | content: 'desktop'; 136 | } 137 | } 138 | 139 | .cd-timeline-navigation a { 140 | /* these are the left/right arrows to navigate the timeline */ 141 | position: absolute; 142 | background:#fff; 143 | z-index: 1; 144 | top: 50%; 145 | bottom: auto; 146 | -webkit-transform: translateY(-50%); 147 | -moz-transform: translateY(-50%); 148 | -ms-transform: translateY(-50%); 149 | -o-transform: translateY(-50%); 150 | transform: translateY(-50%); 151 | height: 34px; 152 | width: 34px; 153 | border-radius: 50%; 154 | border: 2px solid #dfdfdf; 155 | /* replace text with an icon */ 156 | overflow: hidden; 157 | color: transparent; 158 | text-indent: 100%; 159 | white-space: nowrap; 160 | -webkit-transition: border-color 0.3s; 161 | -moz-transition: border-color 0.3s; 162 | transition: border-color 0.3s; 163 | } 164 | .cd-timeline-navigation a::after { 165 | /* arrow icon */ 166 | content: ''; 167 | position: absolute; 168 | height: 16px; 169 | width: 16px; 170 | left: 50%; 171 | top: 50%; 172 | bottom: auto; 173 | right: auto; 174 | -webkit-transform: translateX(-50%) translateY(-50%); 175 | -moz-transform: translateX(-50%) translateY(-50%); 176 | -ms-transform: translateX(-50%) translateY(-50%); 177 | -o-transform: translateX(-50%) translateY(-50%); 178 | transform: translateX(-50%) translateY(-50%); 179 | background: url(../../img/arrow-right.png) no-repeat 0 0; 180 | } 181 | .cd-timeline-navigation a.prev { 182 | left: 0; 183 | -webkit-transform: translateY(-50%) rotate(180deg); 184 | -moz-transform: translateY(-50%) rotate(180deg); 185 | -ms-transform: translateY(-50%) rotate(180deg); 186 | -o-transform: translateY(-50%) rotate(180deg); 187 | transform: translateY(-50%) rotate(180deg); 188 | } 189 | .cd-timeline-navigation a.next { 190 | right: 0; 191 | } 192 | .no-touch .cd-timeline-navigation a:hover { 193 | border-color: #7b9d6f; 194 | } 195 | .cd-timeline-navigation a.inactive { 196 | cursor: not-allowed; 197 | } 198 | .cd-timeline-navigation a.inactive::after { 199 | background-position: 0 -16px; 200 | } 201 | .no-touch .cd-timeline-navigation a.inactive:hover { 202 | border-color: #dfdfdf; 203 | } 204 | 205 | .jtline .events-content { 206 | width: 90%; 207 | height: auto !important; 208 | margin:0 auto; 209 | position: relative; 210 | height: 500px; 211 | overflow: hidden; 212 | -webkit-transition: height 0.4s; 213 | -moz-transition: height 0.4s; 214 | transition: height 0.4s; 215 | } 216 | .jtline .events-content ol { 217 | padding: 0 40px; 218 | } 219 | .jtline .events-content li { 220 | position: absolute; 221 | z-index: 1; 222 | width: 100%; 223 | left: 0; 224 | top: 0; 225 | -webkit-transform: translateX(-100%); 226 | -moz-transform: translateX(-100%); 227 | -ms-transform: translateX(-100%); 228 | -o-transform: translateX(-100%); 229 | transform: translateX(-100%); 230 | opacity: 0; 231 | -webkit-animation-duration: 0.4s; 232 | -moz-animation-duration: 0.4s; 233 | animation-duration: 0.4s; 234 | -webkit-animation-timing-function: ease-in-out; 235 | -moz-animation-timing-function: ease-in-out; 236 | animation-timing-function: ease-in-out; 237 | } 238 | .jtline .events-content li.selected { 239 | /* visible event content */ 240 | position: relative; 241 | z-index: 2; 242 | opacity: 1; 243 | -webkit-transform: translateX(0); 244 | -moz-transform: translateX(0); 245 | -ms-transform: translateX(0); 246 | -o-transform: translateX(0); 247 | transform: translateX(0); 248 | padding: 20px 0; 249 | } 250 | .jtline .events-content li.enter-right, .jtline .events-content li.leave-right { 251 | -webkit-animation-name: cd-enter-right; 252 | -moz-animation-name: cd-enter-right; 253 | animation-name: cd-enter-right; 254 | } 255 | .jtline .events-content li.enter-left, .jtline .events-content li.leave-left { 256 | -webkit-animation-name: cd-enter-left; 257 | -moz-animation-name: cd-enter-left; 258 | animation-name: cd-enter-left; 259 | } 260 | .jtline .events-content li.leave-right, .jtline .events-content li.leave-left { 261 | -webkit-animation-direction: reverse; 262 | -moz-animation-direction: reverse; 263 | animation-direction: reverse; 264 | } 265 | .jtline .events-content li > * { 266 | 267 | margin: 0 auto; 268 | } 269 | .jtline .events-content h2 { 270 | font-weight: bold; 271 | font-size: 2.6rem; 272 | font-weight: 700; 273 | line-height: 1.2; 274 | } 275 | 276 | 277 | .jtline .events-content p { 278 | font-size: 15px; 279 | color: #000; 280 | line-height: 27px !important; 281 | } 282 | .jtline .events-content p { 283 | line-height: 1.6; 284 | } 285 | @media only screen and (min-width: 768px) { 286 | .jtline .events-content h2 { 287 | font-size: 7rem; 288 | } 289 | 290 | .jtline .events-content p { 291 | font-size: 15px; 292 | } 293 | } 294 | 295 | @media only screen and (max-width: 768px) { 296 | .jtline .events-content ol { 297 | padding: 0; 298 | } 299 | } 300 | @-webkit-keyframes cd-enter-right { 301 | 0% { 302 | opacity: 0; 303 | -webkit-transform: translateX(100%); 304 | } 305 | 100% { 306 | opacity: 1; 307 | -webkit-transform: translateX(0%); 308 | } 309 | } 310 | @-moz-keyframes cd-enter-right { 311 | 0% { 312 | opacity: 0; 313 | -moz-transform: translateX(100%); 314 | } 315 | 100% { 316 | opacity: 1; 317 | -moz-transform: translateX(0%); 318 | } 319 | } 320 | @keyframes cd-enter-right { 321 | 0% { 322 | opacity: 0; 323 | -webkit-transform: translateX(100%); 324 | -moz-transform: translateX(100%); 325 | -ms-transform: translateX(100%); 326 | -o-transform: translateX(100%); 327 | transform: translateX(100%); 328 | } 329 | 100% { 330 | opacity: 1; 331 | -webkit-transform: translateX(0%); 332 | -moz-transform: translateX(0%); 333 | -ms-transform: translateX(0%); 334 | -o-transform: translateX(0%); 335 | transform: translateX(0%); 336 | } 337 | } 338 | @-webkit-keyframes cd-enter-left { 339 | 0% { 340 | opacity: 0; 341 | -webkit-transform: translateX(-100%); 342 | } 343 | 100% { 344 | opacity: 1; 345 | -webkit-transform: translateX(0%); 346 | } 347 | } 348 | @-moz-keyframes cd-enter-left { 349 | 0% { 350 | opacity: 0; 351 | -moz-transform: translateX(-100%); 352 | } 353 | 100% { 354 | opacity: 1; 355 | -moz-transform: translateX(0%); 356 | } 357 | } 358 | @keyframes cd-enter-left { 359 | 0% { 360 | opacity: 0; 361 | -webkit-transform: translateX(-100%); 362 | -moz-transform: translateX(-100%); 363 | -ms-transform: translateX(-100%); 364 | -o-transform: translateX(-100%); 365 | transform: translateX(-100%); 366 | } 367 | 100% { 368 | opacity: 1; 369 | -webkit-transform: translateX(0%); 370 | -moz-transform: translateX(0%); 371 | -ms-transform: translateX(0%); 372 | -o-transform: translateX(0%); 373 | transform: translateX(0%); 374 | } 375 | } -------------------------------------------------------------------------------- /data/speakers.json: -------------------------------------------------------------------------------- 1 | { 2 | "Keynote": [ 3 | { 4 | "Name": "Armin Ronacher", 5 | "City": "Austria", 6 | "Designation": "Software Engineer @ Sentry.io ", 7 | "profile_image": "https://in.pycon.org/2018/img/armin-ronacher.png", 8 | "Description": "Creator of the Flask Web Framework and principal software engineer at sentry.io.", 9 | "social_links": { 10 | "twitter": "https://twitter.com/mitsuhiko", 11 | "linkedin": "https://www.linkedin.com/in/arminronacher", 12 | "github": "http://github.com/mitsuhiko", 13 | "website": "http://lucumr.pocoo.org/" 14 | } 15 | }, 16 | { 17 | "Name": "Carol Willing", 18 | "City": "San Diego", 19 | "Designation": "Core Developer of CPython & Jupyter", 20 | "profile_image": "https://in.pycon.org/2018/img/carol-willing.png", 21 | "Description": "PSF Fellow and former Director, a core developer of CPython and Project Jupyter.", 22 | "social_links": { 23 | "twitter": "https://twitter.com/WillingCarol", 24 | "linkedin": "https://www.linkedin.com/in/carolwilling", 25 | "github": "https://github.com/willingc", 26 | "website": "https://www.willingconsulting.com/" 27 | } 28 | }, 29 | { 30 | "Name": "Travis E. Oliphant", 31 | "City": "Austin, TX", 32 | "Designation": "Director, Anaconda Inc.", 33 | "profile_image": "https://in.pycon.org/2018/img/travis-oliphant.png", 34 | "Description": "Creator of SciPy, NumPy, and Numba; Founder of NumFOCUS. CEO of Quansight", 35 | "social_links": { 36 | "twitter": "https://twitter.com/teoliphant", 37 | "linkedin": "https://www.linkedin.com/in/teoliphant/", 38 | "github": "https://github.com/teoliphant", 39 | "website": "https://technicaldiscovery.blogspot.com/" 40 | } 41 | }, 42 | { 43 | "Name": "Sidu Ponnappa", 44 | "City": "Bangalore, India", 45 | "Designation": "Data + People, GO-JEK", 46 | "profile_image": "https://in.pycon.org/2018/img/sidu-ponnappa.png", 47 | "Description": "Sidu is 4x a Founder/CEO, 3x a failure, 1x profitable and 1x exit. Now: Data + People @GojekTech", 48 | "social_links": { 49 | "twitter": "https://twitter.com/ponnappa", 50 | "linkedin": "https://www.linkedin.com/in/sidup/", 51 | "github": "https://github.com/kaiwren", 52 | "website": "http://sidu.in/" 53 | } 54 | } 55 | ], 56 | "Workshop": [ 57 | 58 | ], 59 | "Talks": [ 60 | 61 | ] 62 | } 63 | -------------------------------------------------------------------------------- /font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .@{fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font-family: FontAwesome; 7 | font-style: normal; 8 | font-weight: normal; 9 | line-height: 1; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | -------------------------------------------------------------------------------- /font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "spinning"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: -@fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon-rotate(@degrees, @rotation) { 5 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); 6 | -webkit-transform: rotate(@degrees); 7 | -moz-transform: rotate(@degrees); 8 | -ms-transform: rotate(@degrees); 9 | -o-transform: rotate(@degrees); 10 | transform: rotate(@degrees); 11 | } 12 | 13 | .fa-icon-flip(@horiz, @vert, @rotation) { 14 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); 15 | -webkit-transform: scale(@horiz, @vert); 16 | -moz-transform: scale(@horiz, @vert); 17 | -ms-transform: scale(@horiz, @vert); 18 | -o-transform: scale(@horiz, @vert); 19 | transform: scale(@horiz, @vert); 20 | } 21 | -------------------------------------------------------------------------------- /font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 9 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 10 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 11 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | -------------------------------------------------------------------------------- /font-awesome/less/spinning.less: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: spin 2s infinite linear; 6 | -moz-animation: spin 2s infinite linear; 7 | -o-animation: spin 2s infinite linear; 8 | animation: spin 2s infinite linear; 9 | } 10 | 11 | @-moz-keyframes spin { 12 | 0% { -moz-transform: rotate(0deg); } 13 | 100% { -moz-transform: rotate(359deg); } 14 | } 15 | @-webkit-keyframes spin { 16 | 0% { -webkit-transform: rotate(0deg); } 17 | 100% { -webkit-transform: rotate(359deg); } 18 | } 19 | @-o-keyframes spin { 20 | 0% { -o-transform: rotate(0deg); } 21 | 100% { -o-transform: rotate(359deg); } 22 | } 23 | @-ms-keyframes spin { 24 | 0% { -ms-transform: rotate(0deg); } 25 | 100% { -ms-transform: rotate(359deg); } 26 | } 27 | @keyframes spin { 28 | 0% { transform: rotate(0deg); } 29 | 100% { transform: rotate(359deg); } 30 | } 31 | -------------------------------------------------------------------------------- /font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /font-awesome/less/variables.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | @fa-font-path: "../fonts"; 5 | //@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts"; // for referencing Bootstrap CDN font files directly 6 | @fa-css-prefix: fa; 7 | @fa-version: "4.0.3"; 8 | @fa-border-color: #eee; 9 | @fa-inverse: #fff; 10 | @fa-li-width: (30em / 14); 11 | 12 | @fa-var-glass: "\f000"; 13 | @fa-var-music: "\f001"; 14 | @fa-var-search: "\f002"; 15 | @fa-var-envelope-o: "\f003"; 16 | @fa-var-heart: "\f004"; 17 | @fa-var-star: "\f005"; 18 | @fa-var-star-o: "\f006"; 19 | @fa-var-user: "\f007"; 20 | @fa-var-film: "\f008"; 21 | @fa-var-th-large: "\f009"; 22 | @fa-var-th: "\f00a"; 23 | @fa-var-th-list: "\f00b"; 24 | @fa-var-check: "\f00c"; 25 | @fa-var-times: "\f00d"; 26 | @fa-var-search-plus: "\f00e"; 27 | @fa-var-search-minus: "\f010"; 28 | @fa-var-power-off: "\f011"; 29 | @fa-var-signal: "\f012"; 30 | @fa-var-cog: "\f013"; 31 | @fa-var-trash-o: "\f014"; 32 | @fa-var-home: "\f015"; 33 | @fa-var-file-o: "\f016"; 34 | @fa-var-clock-o: "\f017"; 35 | @fa-var-road: "\f018"; 36 | @fa-var-download: "\f019"; 37 | @fa-var-arrow-circle-o-down: "\f01a"; 38 | @fa-var-arrow-circle-o-up: "\f01b"; 39 | @fa-var-inbox: "\f01c"; 40 | @fa-var-play-circle-o: "\f01d"; 41 | @fa-var-repeat: "\f01e"; 42 | @fa-var-refresh: "\f021"; 43 | @fa-var-list-alt: "\f022"; 44 | @fa-var-lock: "\f023"; 45 | @fa-var-flag: "\f024"; 46 | @fa-var-headphones: "\f025"; 47 | @fa-var-volume-off: "\f026"; 48 | @fa-var-volume-down: "\f027"; 49 | @fa-var-volume-up: "\f028"; 50 | @fa-var-qrcode: "\f029"; 51 | @fa-var-barcode: "\f02a"; 52 | @fa-var-tag: "\f02b"; 53 | @fa-var-tags: "\f02c"; 54 | @fa-var-book: "\f02d"; 55 | @fa-var-bookmark: "\f02e"; 56 | @fa-var-print: "\f02f"; 57 | @fa-var-camera: "\f030"; 58 | @fa-var-font: "\f031"; 59 | @fa-var-bold: "\f032"; 60 | @fa-var-italic: "\f033"; 61 | @fa-var-text-height: "\f034"; 62 | @fa-var-text-width: "\f035"; 63 | @fa-var-align-left: "\f036"; 64 | @fa-var-align-center: "\f037"; 65 | @fa-var-align-right: "\f038"; 66 | @fa-var-align-justify: "\f039"; 67 | @fa-var-list: "\f03a"; 68 | @fa-var-outdent: "\f03b"; 69 | @fa-var-indent: "\f03c"; 70 | @fa-var-video-camera: "\f03d"; 71 | @fa-var-picture-o: "\f03e"; 72 | @fa-var-pencil: "\f040"; 73 | @fa-var-map-marker: "\f041"; 74 | @fa-var-adjust: "\f042"; 75 | @fa-var-tint: "\f043"; 76 | @fa-var-pencil-square-o: "\f044"; 77 | @fa-var-share-square-o: "\f045"; 78 | @fa-var-check-square-o: "\f046"; 79 | @fa-var-arrows: "\f047"; 80 | @fa-var-step-backward: "\f048"; 81 | @fa-var-fast-backward: "\f049"; 82 | @fa-var-backward: "\f04a"; 83 | @fa-var-play: "\f04b"; 84 | @fa-var-pause: "\f04c"; 85 | @fa-var-stop: "\f04d"; 86 | @fa-var-forward: "\f04e"; 87 | @fa-var-fast-forward: "\f050"; 88 | @fa-var-step-forward: "\f051"; 89 | @fa-var-eject: "\f052"; 90 | @fa-var-chevron-left: "\f053"; 91 | @fa-var-chevron-right: "\f054"; 92 | @fa-var-plus-circle: "\f055"; 93 | @fa-var-minus-circle: "\f056"; 94 | @fa-var-times-circle: "\f057"; 95 | @fa-var-check-circle: "\f058"; 96 | @fa-var-question-circle: "\f059"; 97 | @fa-var-info-circle: "\f05a"; 98 | @fa-var-crosshairs: "\f05b"; 99 | @fa-var-times-circle-o: "\f05c"; 100 | @fa-var-check-circle-o: "\f05d"; 101 | @fa-var-ban: "\f05e"; 102 | @fa-var-arrow-left: "\f060"; 103 | @fa-var-arrow-right: "\f061"; 104 | @fa-var-arrow-up: "\f062"; 105 | @fa-var-arrow-down: "\f063"; 106 | @fa-var-share: "\f064"; 107 | @fa-var-expand: "\f065"; 108 | @fa-var-compress: "\f066"; 109 | @fa-var-plus: "\f067"; 110 | @fa-var-minus: "\f068"; 111 | @fa-var-asterisk: "\f069"; 112 | @fa-var-exclamation-circle: "\f06a"; 113 | @fa-var-gift: "\f06b"; 114 | @fa-var-leaf: "\f06c"; 115 | @fa-var-fire: "\f06d"; 116 | @fa-var-eye: "\f06e"; 117 | @fa-var-eye-slash: "\f070"; 118 | @fa-var-exclamation-triangle: "\f071"; 119 | @fa-var-plane: "\f072"; 120 | @fa-var-calendar: "\f073"; 121 | @fa-var-random: "\f074"; 122 | @fa-var-comment: "\f075"; 123 | @fa-var-magnet: "\f076"; 124 | @fa-var-chevron-up: "\f077"; 125 | @fa-var-chevron-down: "\f078"; 126 | @fa-var-retweet: "\f079"; 127 | @fa-var-shopping-cart: "\f07a"; 128 | @fa-var-folder: "\f07b"; 129 | @fa-var-folder-open: "\f07c"; 130 | @fa-var-arrows-v: "\f07d"; 131 | @fa-var-arrows-h: "\f07e"; 132 | @fa-var-bar-chart-o: "\f080"; 133 | @fa-var-twitter-square: "\f081"; 134 | @fa-var-facebook-square: "\f082"; 135 | @fa-var-camera-retro: "\f083"; 136 | @fa-var-key: "\f084"; 137 | @fa-var-cogs: "\f085"; 138 | @fa-var-comments: "\f086"; 139 | @fa-var-thumbs-o-up: "\f087"; 140 | @fa-var-thumbs-o-down: "\f088"; 141 | @fa-var-star-half: "\f089"; 142 | @fa-var-heart-o: "\f08a"; 143 | @fa-var-sign-out: "\f08b"; 144 | @fa-var-linkedin-square: "\f08c"; 145 | @fa-var-thumb-tack: "\f08d"; 146 | @fa-var-external-link: "\f08e"; 147 | @fa-var-sign-in: "\f090"; 148 | @fa-var-trophy: "\f091"; 149 | @fa-var-github-square: "\f092"; 150 | @fa-var-upload: "\f093"; 151 | @fa-var-lemon-o: "\f094"; 152 | @fa-var-phone: "\f095"; 153 | @fa-var-square-o: "\f096"; 154 | @fa-var-bookmark-o: "\f097"; 155 | @fa-var-phone-square: "\f098"; 156 | @fa-var-twitter: "\f099"; 157 | @fa-var-facebook: "\f09a"; 158 | @fa-var-github: "\f09b"; 159 | @fa-var-unlock: "\f09c"; 160 | @fa-var-credit-card: "\f09d"; 161 | @fa-var-rss: "\f09e"; 162 | @fa-var-hdd-o: "\f0a0"; 163 | @fa-var-bullhorn: "\f0a1"; 164 | @fa-var-bell: "\f0f3"; 165 | @fa-var-certificate: "\f0a3"; 166 | @fa-var-hand-o-right: "\f0a4"; 167 | @fa-var-hand-o-left: "\f0a5"; 168 | @fa-var-hand-o-up: "\f0a6"; 169 | @fa-var-hand-o-down: "\f0a7"; 170 | @fa-var-arrow-circle-left: "\f0a8"; 171 | @fa-var-arrow-circle-right: "\f0a9"; 172 | @fa-var-arrow-circle-up: "\f0aa"; 173 | @fa-var-arrow-circle-down: "\f0ab"; 174 | @fa-var-globe: "\f0ac"; 175 | @fa-var-wrench: "\f0ad"; 176 | @fa-var-tasks: "\f0ae"; 177 | @fa-var-filter: "\f0b0"; 178 | @fa-var-briefcase: "\f0b1"; 179 | @fa-var-arrows-alt: "\f0b2"; 180 | @fa-var-users: "\f0c0"; 181 | @fa-var-link: "\f0c1"; 182 | @fa-var-cloud: "\f0c2"; 183 | @fa-var-flask: "\f0c3"; 184 | @fa-var-scissors: "\f0c4"; 185 | @fa-var-files-o: "\f0c5"; 186 | @fa-var-paperclip: "\f0c6"; 187 | @fa-var-floppy-o: "\f0c7"; 188 | @fa-var-square: "\f0c8"; 189 | @fa-var-bars: "\f0c9"; 190 | @fa-var-list-ul: "\f0ca"; 191 | @fa-var-list-ol: "\f0cb"; 192 | @fa-var-strikethrough: "\f0cc"; 193 | @fa-var-underline: "\f0cd"; 194 | @fa-var-table: "\f0ce"; 195 | @fa-var-magic: "\f0d0"; 196 | @fa-var-truck: "\f0d1"; 197 | @fa-var-pinterest: "\f0d2"; 198 | @fa-var-pinterest-square: "\f0d3"; 199 | @fa-var-google-plus-square: "\f0d4"; 200 | @fa-var-google-plus: "\f0d5"; 201 | @fa-var-money: "\f0d6"; 202 | @fa-var-caret-down: "\f0d7"; 203 | @fa-var-caret-up: "\f0d8"; 204 | @fa-var-caret-left: "\f0d9"; 205 | @fa-var-caret-right: "\f0da"; 206 | @fa-var-columns: "\f0db"; 207 | @fa-var-sort: "\f0dc"; 208 | @fa-var-sort-asc: "\f0dd"; 209 | @fa-var-sort-desc: "\f0de"; 210 | @fa-var-envelope: "\f0e0"; 211 | @fa-var-linkedin: "\f0e1"; 212 | @fa-var-undo: "\f0e2"; 213 | @fa-var-gavel: "\f0e3"; 214 | @fa-var-tachometer: "\f0e4"; 215 | @fa-var-comment-o: "\f0e5"; 216 | @fa-var-comments-o: "\f0e6"; 217 | @fa-var-bolt: "\f0e7"; 218 | @fa-var-sitemap: "\f0e8"; 219 | @fa-var-umbrella: "\f0e9"; 220 | @fa-var-clipboard: "\f0ea"; 221 | @fa-var-lightbulb-o: "\f0eb"; 222 | @fa-var-exchange: "\f0ec"; 223 | @fa-var-cloud-download: "\f0ed"; 224 | @fa-var-cloud-upload: "\f0ee"; 225 | @fa-var-user-md: "\f0f0"; 226 | @fa-var-stethoscope: "\f0f1"; 227 | @fa-var-suitcase: "\f0f2"; 228 | @fa-var-bell-o: "\f0a2"; 229 | @fa-var-coffee: "\f0f4"; 230 | @fa-var-cutlery: "\f0f5"; 231 | @fa-var-file-text-o: "\f0f6"; 232 | @fa-var-building-o: "\f0f7"; 233 | @fa-var-hospital-o: "\f0f8"; 234 | @fa-var-ambulance: "\f0f9"; 235 | @fa-var-medkit: "\f0fa"; 236 | @fa-var-fighter-jet: "\f0fb"; 237 | @fa-var-beer: "\f0fc"; 238 | @fa-var-h-square: "\f0fd"; 239 | @fa-var-plus-square: "\f0fe"; 240 | @fa-var-angle-double-left: "\f100"; 241 | @fa-var-angle-double-right: "\f101"; 242 | @fa-var-angle-double-up: "\f102"; 243 | @fa-var-angle-double-down: "\f103"; 244 | @fa-var-angle-left: "\f104"; 245 | @fa-var-angle-right: "\f105"; 246 | @fa-var-angle-up: "\f106"; 247 | @fa-var-angle-down: "\f107"; 248 | @fa-var-desktop: "\f108"; 249 | @fa-var-laptop: "\f109"; 250 | @fa-var-tablet: "\f10a"; 251 | @fa-var-mobile: "\f10b"; 252 | @fa-var-circle-o: "\f10c"; 253 | @fa-var-quote-left: "\f10d"; 254 | @fa-var-quote-right: "\f10e"; 255 | @fa-var-spinner: "\f110"; 256 | @fa-var-circle: "\f111"; 257 | @fa-var-reply: "\f112"; 258 | @fa-var-github-alt: "\f113"; 259 | @fa-var-folder-o: "\f114"; 260 | @fa-var-folder-open-o: "\f115"; 261 | @fa-var-smile-o: "\f118"; 262 | @fa-var-frown-o: "\f119"; 263 | @fa-var-meh-o: "\f11a"; 264 | @fa-var-gamepad: "\f11b"; 265 | @fa-var-keyboard-o: "\f11c"; 266 | @fa-var-flag-o: "\f11d"; 267 | @fa-var-flag-checkered: "\f11e"; 268 | @fa-var-terminal: "\f120"; 269 | @fa-var-code: "\f121"; 270 | @fa-var-reply-all: "\f122"; 271 | @fa-var-mail-reply-all: "\f122"; 272 | @fa-var-star-half-o: "\f123"; 273 | @fa-var-location-arrow: "\f124"; 274 | @fa-var-crop: "\f125"; 275 | @fa-var-code-fork: "\f126"; 276 | @fa-var-chain-broken: "\f127"; 277 | @fa-var-question: "\f128"; 278 | @fa-var-info: "\f129"; 279 | @fa-var-exclamation: "\f12a"; 280 | @fa-var-superscript: "\f12b"; 281 | @fa-var-subscript: "\f12c"; 282 | @fa-var-eraser: "\f12d"; 283 | @fa-var-puzzle-piece: "\f12e"; 284 | @fa-var-microphone: "\f130"; 285 | @fa-var-microphone-slash: "\f131"; 286 | @fa-var-shield: "\f132"; 287 | @fa-var-calendar-o: "\f133"; 288 | @fa-var-fire-extinguisher: "\f134"; 289 | @fa-var-rocket: "\f135"; 290 | @fa-var-maxcdn: "\f136"; 291 | @fa-var-chevron-circle-left: "\f137"; 292 | @fa-var-chevron-circle-right: "\f138"; 293 | @fa-var-chevron-circle-up: "\f139"; 294 | @fa-var-chevron-circle-down: "\f13a"; 295 | @fa-var-html5: "\f13b"; 296 | @fa-var-css3: "\f13c"; 297 | @fa-var-anchor: "\f13d"; 298 | @fa-var-unlock-alt: "\f13e"; 299 | @fa-var-bullseye: "\f140"; 300 | @fa-var-ellipsis-h: "\f141"; 301 | @fa-var-ellipsis-v: "\f142"; 302 | @fa-var-rss-square: "\f143"; 303 | @fa-var-play-circle: "\f144"; 304 | @fa-var-ticket: "\f145"; 305 | @fa-var-minus-square: "\f146"; 306 | @fa-var-minus-square-o: "\f147"; 307 | @fa-var-level-up: "\f148"; 308 | @fa-var-level-down: "\f149"; 309 | @fa-var-check-square: "\f14a"; 310 | @fa-var-pencil-square: "\f14b"; 311 | @fa-var-external-link-square: "\f14c"; 312 | @fa-var-share-square: "\f14d"; 313 | @fa-var-compass: "\f14e"; 314 | @fa-var-caret-square-o-down: "\f150"; 315 | @fa-var-caret-square-o-up: "\f151"; 316 | @fa-var-caret-square-o-right: "\f152"; 317 | @fa-var-eur: "\f153"; 318 | @fa-var-gbp: "\f154"; 319 | @fa-var-usd: "\f155"; 320 | @fa-var-inr: "\f156"; 321 | @fa-var-jpy: "\f157"; 322 | @fa-var-rub: "\f158"; 323 | @fa-var-krw: "\f159"; 324 | @fa-var-btc: "\f15a"; 325 | @fa-var-file: "\f15b"; 326 | @fa-var-file-text: "\f15c"; 327 | @fa-var-sort-alpha-asc: "\f15d"; 328 | @fa-var-sort-alpha-desc: "\f15e"; 329 | @fa-var-sort-amount-asc: "\f160"; 330 | @fa-var-sort-amount-desc: "\f161"; 331 | @fa-var-sort-numeric-asc: "\f162"; 332 | @fa-var-sort-numeric-desc: "\f163"; 333 | @fa-var-thumbs-up: "\f164"; 334 | @fa-var-thumbs-down: "\f165"; 335 | @fa-var-youtube-square: "\f166"; 336 | @fa-var-youtube: "\f167"; 337 | @fa-var-xing: "\f168"; 338 | @fa-var-xing-square: "\f169"; 339 | @fa-var-youtube-play: "\f16a"; 340 | @fa-var-dropbox: "\f16b"; 341 | @fa-var-stack-overflow: "\f16c"; 342 | @fa-var-instagram: "\f16d"; 343 | @fa-var-flickr: "\f16e"; 344 | @fa-var-adn: "\f170"; 345 | @fa-var-bitbucket: "\f171"; 346 | @fa-var-bitbucket-square: "\f172"; 347 | @fa-var-tumblr: "\f173"; 348 | @fa-var-tumblr-square: "\f174"; 349 | @fa-var-long-arrow-down: "\f175"; 350 | @fa-var-long-arrow-up: "\f176"; 351 | @fa-var-long-arrow-left: "\f177"; 352 | @fa-var-long-arrow-right: "\f178"; 353 | @fa-var-apple: "\f179"; 354 | @fa-var-windows: "\f17a"; 355 | @fa-var-android: "\f17b"; 356 | @fa-var-linux: "\f17c"; 357 | @fa-var-dribbble: "\f17d"; 358 | @fa-var-skype: "\f17e"; 359 | @fa-var-foursquare: "\f180"; 360 | @fa-var-trello: "\f181"; 361 | @fa-var-female: "\f182"; 362 | @fa-var-male: "\f183"; 363 | @fa-var-gittip: "\f184"; 364 | @fa-var-sun-o: "\f185"; 365 | @fa-var-moon-o: "\f186"; 366 | @fa-var-archive: "\f187"; 367 | @fa-var-bug: "\f188"; 368 | @fa-var-vk: "\f189"; 369 | @fa-var-weibo: "\f18a"; 370 | @fa-var-renren: "\f18b"; 371 | @fa-var-pagelines: "\f18c"; 372 | @fa-var-stack-exchange: "\f18d"; 373 | @fa-var-arrow-circle-o-right: "\f18e"; 374 | @fa-var-arrow-circle-o-left: "\f190"; 375 | @fa-var-caret-square-o-left: "\f191"; 376 | @fa-var-dot-circle-o: "\f192"; 377 | @fa-var-wheelchair: "\f193"; 378 | @fa-var-vimeo-square: "\f194"; 379 | @fa-var-try: "\f195"; 380 | @fa-var-plus-square-o: "\f196"; 381 | 382 | -------------------------------------------------------------------------------- /font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .pull-right { float: right; } 11 | .pull-left { float: left; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.pull-left { margin-right: .3em; } 15 | &.pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font-family: FontAwesome; 7 | font-style: normal; 8 | font-weight: normal; 9 | line-height: 1; 10 | -webkit-font-smoothing: antialiased; 11 | -moz-osx-font-smoothing: grayscale; 12 | } 13 | -------------------------------------------------------------------------------- /font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon-rotate($degrees, $rotation) { 5 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); 6 | -webkit-transform: rotate($degrees); 7 | -moz-transform: rotate($degrees); 8 | -ms-transform: rotate($degrees); 9 | -o-transform: rotate($degrees); 10 | transform: rotate($degrees); 11 | } 12 | 13 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 14 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=$rotation); 15 | -webkit-transform: scale($horiz, $vert); 16 | -moz-transform: scale($horiz, $vert); 17 | -ms-transform: scale($horiz, $vert); 18 | -o-transform: scale($horiz, $vert); 19 | transform: scale($horiz, $vert); 20 | } 21 | -------------------------------------------------------------------------------- /font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 9 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 10 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 11 | //src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 12 | font-weight: normal; 13 | font-style: normal; 14 | } 15 | -------------------------------------------------------------------------------- /font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | -------------------------------------------------------------------------------- /font-awesome/scss/_spinning.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: spin 2s infinite linear; 6 | -moz-animation: spin 2s infinite linear; 7 | -o-animation: spin 2s infinite linear; 8 | animation: spin 2s infinite linear; 9 | } 10 | 11 | @-moz-keyframes spin { 12 | 0% { -moz-transform: rotate(0deg); } 13 | 100% { -moz-transform: rotate(359deg); } 14 | } 15 | @-webkit-keyframes spin { 16 | 0% { -webkit-transform: rotate(0deg); } 17 | 100% { -webkit-transform: rotate(359deg); } 18 | } 19 | @-o-keyframes spin { 20 | 0% { -o-transform: rotate(0deg); } 21 | 100% { -o-transform: rotate(359deg); } 22 | } 23 | @-ms-keyframes spin { 24 | 0% { -ms-transform: rotate(0deg); } 25 | 100% { -ms-transform: rotate(359deg); } 26 | } 27 | @keyframes spin { 28 | 0% { transform: rotate(0deg); } 29 | 100% { transform: rotate(359deg); } 30 | } 31 | -------------------------------------------------------------------------------- /font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /font-awesome/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | $fa-font-path: "../fonts" !default; 5 | //$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.0.3/fonts" !default; // for referencing Bootstrap CDN font files directly 6 | $fa-css-prefix: fa !default; 7 | $fa-version: "4.0.3" !default; 8 | $fa-border-color: #eee !default; 9 | $fa-inverse: #fff !default; 10 | $fa-li-width: (30em / 14) !default; 11 | 12 | $fa-var-glass: "\f000"; 13 | $fa-var-music: "\f001"; 14 | $fa-var-search: "\f002"; 15 | $fa-var-envelope-o: "\f003"; 16 | $fa-var-heart: "\f004"; 17 | $fa-var-star: "\f005"; 18 | $fa-var-star-o: "\f006"; 19 | $fa-var-user: "\f007"; 20 | $fa-var-film: "\f008"; 21 | $fa-var-th-large: "\f009"; 22 | $fa-var-th: "\f00a"; 23 | $fa-var-th-list: "\f00b"; 24 | $fa-var-check: "\f00c"; 25 | $fa-var-times: "\f00d"; 26 | $fa-var-search-plus: "\f00e"; 27 | $fa-var-search-minus: "\f010"; 28 | $fa-var-power-off: "\f011"; 29 | $fa-var-signal: "\f012"; 30 | $fa-var-cog: "\f013"; 31 | $fa-var-trash-o: "\f014"; 32 | $fa-var-home: "\f015"; 33 | $fa-var-file-o: "\f016"; 34 | $fa-var-clock-o: "\f017"; 35 | $fa-var-road: "\f018"; 36 | $fa-var-download: "\f019"; 37 | $fa-var-arrow-circle-o-down: "\f01a"; 38 | $fa-var-arrow-circle-o-up: "\f01b"; 39 | $fa-var-inbox: "\f01c"; 40 | $fa-var-play-circle-o: "\f01d"; 41 | $fa-var-repeat: "\f01e"; 42 | $fa-var-refresh: "\f021"; 43 | $fa-var-list-alt: "\f022"; 44 | $fa-var-lock: "\f023"; 45 | $fa-var-flag: "\f024"; 46 | $fa-var-headphones: "\f025"; 47 | $fa-var-volume-off: "\f026"; 48 | $fa-var-volume-down: "\f027"; 49 | $fa-var-volume-up: "\f028"; 50 | $fa-var-qrcode: "\f029"; 51 | $fa-var-barcode: "\f02a"; 52 | $fa-var-tag: "\f02b"; 53 | $fa-var-tags: "\f02c"; 54 | $fa-var-book: "\f02d"; 55 | $fa-var-bookmark: "\f02e"; 56 | $fa-var-print: "\f02f"; 57 | $fa-var-camera: "\f030"; 58 | $fa-var-font: "\f031"; 59 | $fa-var-bold: "\f032"; 60 | $fa-var-italic: "\f033"; 61 | $fa-var-text-height: "\f034"; 62 | $fa-var-text-width: "\f035"; 63 | $fa-var-align-left: "\f036"; 64 | $fa-var-align-center: "\f037"; 65 | $fa-var-align-right: "\f038"; 66 | $fa-var-align-justify: "\f039"; 67 | $fa-var-list: "\f03a"; 68 | $fa-var-outdent: "\f03b"; 69 | $fa-var-indent: "\f03c"; 70 | $fa-var-video-camera: "\f03d"; 71 | $fa-var-picture-o: "\f03e"; 72 | $fa-var-pencil: "\f040"; 73 | $fa-var-map-marker: "\f041"; 74 | $fa-var-adjust: "\f042"; 75 | $fa-var-tint: "\f043"; 76 | $fa-var-pencil-square-o: "\f044"; 77 | $fa-var-share-square-o: "\f045"; 78 | $fa-var-check-square-o: "\f046"; 79 | $fa-var-arrows: "\f047"; 80 | $fa-var-step-backward: "\f048"; 81 | $fa-var-fast-backward: "\f049"; 82 | $fa-var-backward: "\f04a"; 83 | $fa-var-play: "\f04b"; 84 | $fa-var-pause: "\f04c"; 85 | $fa-var-stop: "\f04d"; 86 | $fa-var-forward: "\f04e"; 87 | $fa-var-fast-forward: "\f050"; 88 | $fa-var-step-forward: "\f051"; 89 | $fa-var-eject: "\f052"; 90 | $fa-var-chevron-left: "\f053"; 91 | $fa-var-chevron-right: "\f054"; 92 | $fa-var-plus-circle: "\f055"; 93 | $fa-var-minus-circle: "\f056"; 94 | $fa-var-times-circle: "\f057"; 95 | $fa-var-check-circle: "\f058"; 96 | $fa-var-question-circle: "\f059"; 97 | $fa-var-info-circle: "\f05a"; 98 | $fa-var-crosshairs: "\f05b"; 99 | $fa-var-times-circle-o: "\f05c"; 100 | $fa-var-check-circle-o: "\f05d"; 101 | $fa-var-ban: "\f05e"; 102 | $fa-var-arrow-left: "\f060"; 103 | $fa-var-arrow-right: "\f061"; 104 | $fa-var-arrow-up: "\f062"; 105 | $fa-var-arrow-down: "\f063"; 106 | $fa-var-share: "\f064"; 107 | $fa-var-expand: "\f065"; 108 | $fa-var-compress: "\f066"; 109 | $fa-var-plus: "\f067"; 110 | $fa-var-minus: "\f068"; 111 | $fa-var-asterisk: "\f069"; 112 | $fa-var-exclamation-circle: "\f06a"; 113 | $fa-var-gift: "\f06b"; 114 | $fa-var-leaf: "\f06c"; 115 | $fa-var-fire: "\f06d"; 116 | $fa-var-eye: "\f06e"; 117 | $fa-var-eye-slash: "\f070"; 118 | $fa-var-exclamation-triangle: "\f071"; 119 | $fa-var-plane: "\f072"; 120 | $fa-var-calendar: "\f073"; 121 | $fa-var-random: "\f074"; 122 | $fa-var-comment: "\f075"; 123 | $fa-var-magnet: "\f076"; 124 | $fa-var-chevron-up: "\f077"; 125 | $fa-var-chevron-down: "\f078"; 126 | $fa-var-retweet: "\f079"; 127 | $fa-var-shopping-cart: "\f07a"; 128 | $fa-var-folder: "\f07b"; 129 | $fa-var-folder-open: "\f07c"; 130 | $fa-var-arrows-v: "\f07d"; 131 | $fa-var-arrows-h: "\f07e"; 132 | $fa-var-bar-chart-o: "\f080"; 133 | $fa-var-twitter-square: "\f081"; 134 | $fa-var-facebook-square: "\f082"; 135 | $fa-var-camera-retro: "\f083"; 136 | $fa-var-key: "\f084"; 137 | $fa-var-cogs: "\f085"; 138 | $fa-var-comments: "\f086"; 139 | $fa-var-thumbs-o-up: "\f087"; 140 | $fa-var-thumbs-o-down: "\f088"; 141 | $fa-var-star-half: "\f089"; 142 | $fa-var-heart-o: "\f08a"; 143 | $fa-var-sign-out: "\f08b"; 144 | $fa-var-linkedin-square: "\f08c"; 145 | $fa-var-thumb-tack: "\f08d"; 146 | $fa-var-external-link: "\f08e"; 147 | $fa-var-sign-in: "\f090"; 148 | $fa-var-trophy: "\f091"; 149 | $fa-var-github-square: "\f092"; 150 | $fa-var-upload: "\f093"; 151 | $fa-var-lemon-o: "\f094"; 152 | $fa-var-phone: "\f095"; 153 | $fa-var-square-o: "\f096"; 154 | $fa-var-bookmark-o: "\f097"; 155 | $fa-var-phone-square: "\f098"; 156 | $fa-var-twitter: "\f099"; 157 | $fa-var-facebook: "\f09a"; 158 | $fa-var-github: "\f09b"; 159 | $fa-var-unlock: "\f09c"; 160 | $fa-var-credit-card: "\f09d"; 161 | $fa-var-rss: "\f09e"; 162 | $fa-var-hdd-o: "\f0a0"; 163 | $fa-var-bullhorn: "\f0a1"; 164 | $fa-var-bell: "\f0f3"; 165 | $fa-var-certificate: "\f0a3"; 166 | $fa-var-hand-o-right: "\f0a4"; 167 | $fa-var-hand-o-left: "\f0a5"; 168 | $fa-var-hand-o-up: "\f0a6"; 169 | $fa-var-hand-o-down: "\f0a7"; 170 | $fa-var-arrow-circle-left: "\f0a8"; 171 | $fa-var-arrow-circle-right: "\f0a9"; 172 | $fa-var-arrow-circle-up: "\f0aa"; 173 | $fa-var-arrow-circle-down: "\f0ab"; 174 | $fa-var-globe: "\f0ac"; 175 | $fa-var-wrench: "\f0ad"; 176 | $fa-var-tasks: "\f0ae"; 177 | $fa-var-filter: "\f0b0"; 178 | $fa-var-briefcase: "\f0b1"; 179 | $fa-var-arrows-alt: "\f0b2"; 180 | $fa-var-users: "\f0c0"; 181 | $fa-var-link: "\f0c1"; 182 | $fa-var-cloud: "\f0c2"; 183 | $fa-var-flask: "\f0c3"; 184 | $fa-var-scissors: "\f0c4"; 185 | $fa-var-files-o: "\f0c5"; 186 | $fa-var-paperclip: "\f0c6"; 187 | $fa-var-floppy-o: "\f0c7"; 188 | $fa-var-square: "\f0c8"; 189 | $fa-var-bars: "\f0c9"; 190 | $fa-var-list-ul: "\f0ca"; 191 | $fa-var-list-ol: "\f0cb"; 192 | $fa-var-strikethrough: "\f0cc"; 193 | $fa-var-underline: "\f0cd"; 194 | $fa-var-table: "\f0ce"; 195 | $fa-var-magic: "\f0d0"; 196 | $fa-var-truck: "\f0d1"; 197 | $fa-var-pinterest: "\f0d2"; 198 | $fa-var-pinterest-square: "\f0d3"; 199 | $fa-var-google-plus-square: "\f0d4"; 200 | $fa-var-google-plus: "\f0d5"; 201 | $fa-var-money: "\f0d6"; 202 | $fa-var-caret-down: "\f0d7"; 203 | $fa-var-caret-up: "\f0d8"; 204 | $fa-var-caret-left: "\f0d9"; 205 | $fa-var-caret-right: "\f0da"; 206 | $fa-var-columns: "\f0db"; 207 | $fa-var-sort: "\f0dc"; 208 | $fa-var-sort-asc: "\f0dd"; 209 | $fa-var-sort-desc: "\f0de"; 210 | $fa-var-envelope: "\f0e0"; 211 | $fa-var-linkedin: "\f0e1"; 212 | $fa-var-undo: "\f0e2"; 213 | $fa-var-gavel: "\f0e3"; 214 | $fa-var-tachometer: "\f0e4"; 215 | $fa-var-comment-o: "\f0e5"; 216 | $fa-var-comments-o: "\f0e6"; 217 | $fa-var-bolt: "\f0e7"; 218 | $fa-var-sitemap: "\f0e8"; 219 | $fa-var-umbrella: "\f0e9"; 220 | $fa-var-clipboard: "\f0ea"; 221 | $fa-var-lightbulb-o: "\f0eb"; 222 | $fa-var-exchange: "\f0ec"; 223 | $fa-var-cloud-download: "\f0ed"; 224 | $fa-var-cloud-upload: "\f0ee"; 225 | $fa-var-user-md: "\f0f0"; 226 | $fa-var-stethoscope: "\f0f1"; 227 | $fa-var-suitcase: "\f0f2"; 228 | $fa-var-bell-o: "\f0a2"; 229 | $fa-var-coffee: "\f0f4"; 230 | $fa-var-cutlery: "\f0f5"; 231 | $fa-var-file-text-o: "\f0f6"; 232 | $fa-var-building-o: "\f0f7"; 233 | $fa-var-hospital-o: "\f0f8"; 234 | $fa-var-ambulance: "\f0f9"; 235 | $fa-var-medkit: "\f0fa"; 236 | $fa-var-fighter-jet: "\f0fb"; 237 | $fa-var-beer: "\f0fc"; 238 | $fa-var-h-square: "\f0fd"; 239 | $fa-var-plus-square: "\f0fe"; 240 | $fa-var-angle-double-left: "\f100"; 241 | $fa-var-angle-double-right: "\f101"; 242 | $fa-var-angle-double-up: "\f102"; 243 | $fa-var-angle-double-down: "\f103"; 244 | $fa-var-angle-left: "\f104"; 245 | $fa-var-angle-right: "\f105"; 246 | $fa-var-angle-up: "\f106"; 247 | $fa-var-angle-down: "\f107"; 248 | $fa-var-desktop: "\f108"; 249 | $fa-var-laptop: "\f109"; 250 | $fa-var-tablet: "\f10a"; 251 | $fa-var-mobile: "\f10b"; 252 | $fa-var-circle-o: "\f10c"; 253 | $fa-var-quote-left: "\f10d"; 254 | $fa-var-quote-right: "\f10e"; 255 | $fa-var-spinner: "\f110"; 256 | $fa-var-circle: "\f111"; 257 | $fa-var-reply: "\f112"; 258 | $fa-var-github-alt: "\f113"; 259 | $fa-var-folder-o: "\f114"; 260 | $fa-var-folder-open-o: "\f115"; 261 | $fa-var-smile-o: "\f118"; 262 | $fa-var-frown-o: "\f119"; 263 | $fa-var-meh-o: "\f11a"; 264 | $fa-var-gamepad: "\f11b"; 265 | $fa-var-keyboard-o: "\f11c"; 266 | $fa-var-flag-o: "\f11d"; 267 | $fa-var-flag-checkered: "\f11e"; 268 | $fa-var-terminal: "\f120"; 269 | $fa-var-code: "\f121"; 270 | $fa-var-reply-all: "\f122"; 271 | $fa-var-mail-reply-all: "\f122"; 272 | $fa-var-star-half-o: "\f123"; 273 | $fa-var-location-arrow: "\f124"; 274 | $fa-var-crop: "\f125"; 275 | $fa-var-code-fork: "\f126"; 276 | $fa-var-chain-broken: "\f127"; 277 | $fa-var-question: "\f128"; 278 | $fa-var-info: "\f129"; 279 | $fa-var-exclamation: "\f12a"; 280 | $fa-var-superscript: "\f12b"; 281 | $fa-var-subscript: "\f12c"; 282 | $fa-var-eraser: "\f12d"; 283 | $fa-var-puzzle-piece: "\f12e"; 284 | $fa-var-microphone: "\f130"; 285 | $fa-var-microphone-slash: "\f131"; 286 | $fa-var-shield: "\f132"; 287 | $fa-var-calendar-o: "\f133"; 288 | $fa-var-fire-extinguisher: "\f134"; 289 | $fa-var-rocket: "\f135"; 290 | $fa-var-maxcdn: "\f136"; 291 | $fa-var-chevron-circle-left: "\f137"; 292 | $fa-var-chevron-circle-right: "\f138"; 293 | $fa-var-chevron-circle-up: "\f139"; 294 | $fa-var-chevron-circle-down: "\f13a"; 295 | $fa-var-html5: "\f13b"; 296 | $fa-var-css3: "\f13c"; 297 | $fa-var-anchor: "\f13d"; 298 | $fa-var-unlock-alt: "\f13e"; 299 | $fa-var-bullseye: "\f140"; 300 | $fa-var-ellipsis-h: "\f141"; 301 | $fa-var-ellipsis-v: "\f142"; 302 | $fa-var-rss-square: "\f143"; 303 | $fa-var-play-circle: "\f144"; 304 | $fa-var-ticket: "\f145"; 305 | $fa-var-minus-square: "\f146"; 306 | $fa-var-minus-square-o: "\f147"; 307 | $fa-var-level-up: "\f148"; 308 | $fa-var-level-down: "\f149"; 309 | $fa-var-check-square: "\f14a"; 310 | $fa-var-pencil-square: "\f14b"; 311 | $fa-var-external-link-square: "\f14c"; 312 | $fa-var-share-square: "\f14d"; 313 | $fa-var-compass: "\f14e"; 314 | $fa-var-caret-square-o-down: "\f150"; 315 | $fa-var-caret-square-o-up: "\f151"; 316 | $fa-var-caret-square-o-right: "\f152"; 317 | $fa-var-eur: "\f153"; 318 | $fa-var-gbp: "\f154"; 319 | $fa-var-usd: "\f155"; 320 | $fa-var-inr: "\f156"; 321 | $fa-var-jpy: "\f157"; 322 | $fa-var-rub: "\f158"; 323 | $fa-var-krw: "\f159"; 324 | $fa-var-btc: "\f15a"; 325 | $fa-var-file: "\f15b"; 326 | $fa-var-file-text: "\f15c"; 327 | $fa-var-sort-alpha-asc: "\f15d"; 328 | $fa-var-sort-alpha-desc: "\f15e"; 329 | $fa-var-sort-amount-asc: "\f160"; 330 | $fa-var-sort-amount-desc: "\f161"; 331 | $fa-var-sort-numeric-asc: "\f162"; 332 | $fa-var-sort-numeric-desc: "\f163"; 333 | $fa-var-thumbs-up: "\f164"; 334 | $fa-var-thumbs-down: "\f165"; 335 | $fa-var-youtube-square: "\f166"; 336 | $fa-var-youtube: "\f167"; 337 | $fa-var-xing: "\f168"; 338 | $fa-var-xing-square: "\f169"; 339 | $fa-var-youtube-play: "\f16a"; 340 | $fa-var-dropbox: "\f16b"; 341 | $fa-var-stack-overflow: "\f16c"; 342 | $fa-var-instagram: "\f16d"; 343 | $fa-var-flickr: "\f16e"; 344 | $fa-var-adn: "\f170"; 345 | $fa-var-bitbucket: "\f171"; 346 | $fa-var-bitbucket-square: "\f172"; 347 | $fa-var-tumblr: "\f173"; 348 | $fa-var-tumblr-square: "\f174"; 349 | $fa-var-long-arrow-down: "\f175"; 350 | $fa-var-long-arrow-up: "\f176"; 351 | $fa-var-long-arrow-left: "\f177"; 352 | $fa-var-long-arrow-right: "\f178"; 353 | $fa-var-apple: "\f179"; 354 | $fa-var-windows: "\f17a"; 355 | $fa-var-android: "\f17b"; 356 | $fa-var-linux: "\f17c"; 357 | $fa-var-dribbble: "\f17d"; 358 | $fa-var-skype: "\f17e"; 359 | $fa-var-foursquare: "\f180"; 360 | $fa-var-trello: "\f181"; 361 | $fa-var-female: "\f182"; 362 | $fa-var-male: "\f183"; 363 | $fa-var-gittip: "\f184"; 364 | $fa-var-sun-o: "\f185"; 365 | $fa-var-moon-o: "\f186"; 366 | $fa-var-archive: "\f187"; 367 | $fa-var-bug: "\f188"; 368 | $fa-var-vk: "\f189"; 369 | $fa-var-weibo: "\f18a"; 370 | $fa-var-renren: "\f18b"; 371 | $fa-var-pagelines: "\f18c"; 372 | $fa-var-stack-exchange: "\f18d"; 373 | $fa-var-arrow-circle-o-right: "\f18e"; 374 | $fa-var-arrow-circle-o-left: "\f190"; 375 | $fa-var-caret-square-o-left: "\f191"; 376 | $fa-var-dot-circle-o: "\f192"; 377 | $fa-var-wheelchair: "\f193"; 378 | $fa-var-vimeo-square: "\f194"; 379 | $fa-var-try: "\f195"; 380 | $fa-var-plus-square-o: "\f196"; 381 | 382 | -------------------------------------------------------------------------------- /font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.0.3 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "spinning"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /icons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/android-icon-144x144.png -------------------------------------------------------------------------------- /icons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/android-icon-192x192.png -------------------------------------------------------------------------------- /icons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/android-icon-36x36.png -------------------------------------------------------------------------------- /icons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/android-icon-48x48.png -------------------------------------------------------------------------------- /icons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/android-icon-72x72.png -------------------------------------------------------------------------------- /icons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/android-icon-96x96.png -------------------------------------------------------------------------------- /icons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-114x114.png -------------------------------------------------------------------------------- /icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /icons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-144x144.png -------------------------------------------------------------------------------- /icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /icons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-57x57.png -------------------------------------------------------------------------------- /icons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-60x60.png -------------------------------------------------------------------------------- /icons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-72x72.png -------------------------------------------------------------------------------- /icons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-76x76.png -------------------------------------------------------------------------------- /icons/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon-precomposed.png -------------------------------------------------------------------------------- /icons/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/apple-icon.png -------------------------------------------------------------------------------- /icons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/favicon-16x16.png -------------------------------------------------------------------------------- /icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/favicon-32x32.png -------------------------------------------------------------------------------- /icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/favicon-96x96.png -------------------------------------------------------------------------------- /icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/favicon.ico -------------------------------------------------------------------------------- /icons/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "App", 3 | "icons": [ 4 | { 5 | "src": "\/android-icon-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image\/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "\/android-icon-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image\/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "\/android-icon-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image\/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "\/android-icon-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image\/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "\/android-icon-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image\/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "\/android-icon-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image\/png", 38 | "density": "4.0" 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /icons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/ms-icon-150x150.png -------------------------------------------------------------------------------- /icons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/ms-icon-310x310.png -------------------------------------------------------------------------------- /icons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/icons/ms-icon-70x70.png -------------------------------------------------------------------------------- /icons/window-close-solid.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /img/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/10.png -------------------------------------------------------------------------------- /img/armin-ronacher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/armin-ronacher.png -------------------------------------------------------------------------------- /img/arrow-right .png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/arrow-right .png -------------------------------------------------------------------------------- /img/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/arrow-right.png -------------------------------------------------------------------------------- /img/banner-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/banner-logo.png -------------------------------------------------------------------------------- /img/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/bg.png -------------------------------------------------------------------------------- /img/bg1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/bg1.jpg -------------------------------------------------------------------------------- /img/border1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/border1.png -------------------------------------------------------------------------------- /img/border2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/border2.png -------------------------------------------------------------------------------- /img/card-bg1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/card-bg1.jpg -------------------------------------------------------------------------------- /img/card-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/card-image.jpg -------------------------------------------------------------------------------- /img/carol-willing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/carol-willing.png -------------------------------------------------------------------------------- /img/circle1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/circle1.png -------------------------------------------------------------------------------- /img/circle2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/circle2.png -------------------------------------------------------------------------------- /img/dots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/dots.png -------------------------------------------------------------------------------- /img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/favicon.png -------------------------------------------------------------------------------- /img/fb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/fb.png -------------------------------------------------------------------------------- /img/footer-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/footer-logo.png -------------------------------------------------------------------------------- /img/left-arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/left-arrow.png -------------------------------------------------------------------------------- /img/mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/mail.png -------------------------------------------------------------------------------- /img/main-banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/main-banner.jpg -------------------------------------------------------------------------------- /img/micro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/micro.png -------------------------------------------------------------------------------- /img/oyo_rooms_contact_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/oyo_rooms_contact_banner.png -------------------------------------------------------------------------------- /img/pdfdownload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/pdfdownload.png -------------------------------------------------------------------------------- /img/ran1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/ran1.jpg -------------------------------------------------------------------------------- /img/sidu-ponnappa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sidu-ponnappa.png -------------------------------------------------------------------------------- /img/speaker.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/speaker.jpg -------------------------------------------------------------------------------- /img/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/speaker.png -------------------------------------------------------------------------------- /img/sponser1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponser1.png -------------------------------------------------------------------------------- /img/sponser2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponser2.png -------------------------------------------------------------------------------- /img/sponser3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponser3.png -------------------------------------------------------------------------------- /img/sponsors/DBS_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/DBS_Logo.png -------------------------------------------------------------------------------- /img/sponsors/DESCO_Logo_2c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/DESCO_Logo_2c.jpg -------------------------------------------------------------------------------- /img/sponsors/Elucidata.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /img/sponsors/LiveHealth_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/LiveHealth_logo.png -------------------------------------------------------------------------------- /img/sponsors/Manninglogo_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/Manninglogo_outline.png -------------------------------------------------------------------------------- /img/sponsors/Pramati.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/Pramati.png -------------------------------------------------------------------------------- /img/sponsors/VMware_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/VMware_logo.jpg -------------------------------------------------------------------------------- /img/sponsors/aqr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/aqr.jpg -------------------------------------------------------------------------------- /img/sponsors/atonarp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/atonarp.png -------------------------------------------------------------------------------- /img/sponsors/corteva.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/corteva.png -------------------------------------------------------------------------------- /img/sponsors/fossee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/fossee.png -------------------------------------------------------------------------------- /img/sponsors/go-jek.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/go-jek.png -------------------------------------------------------------------------------- /img/sponsors/google_developers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/google_developers.png -------------------------------------------------------------------------------- /img/sponsors/hackerrank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/hackerrank.png -------------------------------------------------------------------------------- /img/sponsors/ibm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/ibm.png -------------------------------------------------------------------------------- /img/sponsors/indeed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/indeed.png -------------------------------------------------------------------------------- /img/sponsors/jetbrains.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 31 | 32 | 33 | 34 | 35 | 36 | 39 | 40 | 41 | 42 | 43 | 45 | 47 | 48 | 51 | 54 | 56 | 57 | 59 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /img/sponsors/logo-innovaccer-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/logo-innovaccer-full.png -------------------------------------------------------------------------------- /img/sponsors/pipal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/pipal.png -------------------------------------------------------------------------------- /img/sponsors/reckonsys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/reckonsys.png -------------------------------------------------------------------------------- /img/sponsors/soroco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/soroco.png -------------------------------------------------------------------------------- /img/sponsors/talent-sprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/talent-sprint.png -------------------------------------------------------------------------------- /img/sponsors/zaubacloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/zaubacloud.png -------------------------------------------------------------------------------- /img/sponsors/zeomega.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/sponsors/zeomega.png -------------------------------------------------------------------------------- /img/ticket-image.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/ticket-image.jpeg -------------------------------------------------------------------------------- /img/timeline/PyCon2009.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/timeline/PyCon2009.jpg -------------------------------------------------------------------------------- /img/timeline/PyCon2010.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/timeline/PyCon2010.jpg -------------------------------------------------------------------------------- /img/timeline/PyCon2011.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/timeline/PyCon2011.jpg -------------------------------------------------------------------------------- /img/timeline/PyCon2012.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/timeline/PyCon2012.jpg -------------------------------------------------------------------------------- /img/timeline/PyCon2013.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/timeline/PyCon2013.jpg -------------------------------------------------------------------------------- /img/timeline/PyCon2014.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/timeline/PyCon2014.jpg -------------------------------------------------------------------------------- /img/timeline/PyCon2015.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/timeline/PyCon2015.jpg -------------------------------------------------------------------------------- /img/timeline/PyCon2016.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/timeline/PyCon2016.jpg -------------------------------------------------------------------------------- /img/timeline/PyCon2017.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/timeline/PyCon2017.jpg -------------------------------------------------------------------------------- /img/travis-oliphant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/travis-oliphant.png -------------------------------------------------------------------------------- /img/twitt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/twitt.png -------------------------------------------------------------------------------- /img/venuebg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/venuebg.jpg -------------------------------------------------------------------------------- /img/venuebg3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/venuebg3.jpg -------------------------------------------------------------------------------- /img/wc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/img/wc.png -------------------------------------------------------------------------------- /js/canvas.js: -------------------------------------------------------------------------------- 1 | var circles = [], 2 | canvas = document.getElementById("canvas1"), 3 | context = canvas.getContext("2d"), 4 | 5 | // SETTINGS 6 | opacity = 0.2, // the opacity of the circles 0 to 1 7 | colors = ['rgba(226, 62, 137,' + opacity + ')', // an array of rgb colors for the circles 8 | 'rgba(226, 62, 137,' + opacity + ')', 9 | 'rgba(81, 50, 120,' + opacity + ')', 10 | 'rgba(226, 62, 137,' + opacity + ')' 11 | 12 | ], 13 | minSize = 10, // the minimum size of the circles in px 14 | maxSize = 10, // the maximum size of the circles in px 15 | numCircles = 100, // the number of circles 16 | minSpeed = -2, // the minimum speed, recommended: -maxspeed 17 | maxSpeed = 1, // the maximum speed of the circles 18 | expandState = true; // the direction of expansion 19 | 20 | function buildArray() { 21 | 'use strict'; 22 | 23 | for (var i =0; i < numCircles ; i++){ 24 | var color = Math.floor(Math.random() * (colors.length - 1 + 1)) + 1, 25 | left = Math.floor(Math.random() * (canvas.width - 0 + 1)) + 0, 26 | top = Math.floor(Math.random() * (canvas.height - 0 + 1)) + 0, 27 | size = Math.floor(Math.random() * (maxSize - minSize + 1)) + minSize, 28 | leftSpeed = (Math.floor(Math.random() * (maxSpeed - minSpeed + 1)) + minSpeed)/10, 29 | topSpeed = (Math.floor(Math.random() * (maxSpeed - minSpeed + 1)) + minSpeed)/10, 30 | expandState = expandState; 31 | 32 | while(leftSpeed == 0 || topSpeed == 0){ 33 | leftSpeed = (Math.floor(Math.random() * (maxSpeed - minSpeed + 1)) + minSpeed)/10, 34 | topSpeed = (Math.floor(Math.random() * (maxSpeed - minSpeed + 1)) + minSpeed)/10; 35 | } 36 | var circle = {color:color, left:left, top:top, size:size, leftSpeed:leftSpeed, topSpeed:topSpeed, expandState:expandState }; 37 | circles.push(circle); 38 | } 39 | } 40 | 41 | function build(){ 42 | 'use strict'; 43 | 44 | for(var h = 0; h < circles.length; h++){ 45 | var curCircle = circles[h]; 46 | context.fillStyle = colors[curCircle.color-1]; 47 | context.beginPath(); 48 | if(curCircle.left > canvas.width+curCircle.size){ 49 | curCircle.left = 0-curCircle.size; 50 | context.arc(curCircle.left, curCircle.top, curCircle.size, 0, 2 * Math.PI, false); 51 | }else if(curCircle.left < 0-curCircle.size){ 52 | curCircle.left = canvas.width+curCircle.size; 53 | context.arc(curCircle.left, curCircle.top, curCircle.size, 0, 2 * Math.PI, false); 54 | }else{ 55 | curCircle.left = curCircle.left+curCircle.leftSpeed; 56 | context.arc(curCircle.left, curCircle.top, curCircle.size, 0, 2 * Math.PI, false); 57 | } 58 | 59 | if(curCircle.top > canvas.height+curCircle.size){ 60 | curCircle.top = 0-curCircle.size; 61 | context.arc(curCircle.left, curCircle.top, curCircle.size, 0, 2 * Math.PI, false); 62 | 63 | }else if(curCircle.top < 0-curCircle.size){ 64 | curCircle.top = canvas.height+curCircle.size; 65 | context.arc(curCircle.left, curCircle.top, curCircle.size, 0, 2 * Math.PI, false); 66 | }else{ 67 | curCircle.top = curCircle.top+curCircle.topSpeed; 68 | if(curCircle.size != maxSize && curCircle.size != minSize && curCircle.expandState == false){ 69 | curCircle.size = curCircle.size-0.1; 70 | } 71 | else if(curCircle.size != maxSize && curCircle.size != minSize && curCircle.expandState == true){ 72 | curCircle.size = curCircle.size+0.1; 73 | } 74 | else if(curCircle.size == maxSize && curCircle.expandState == true){ 75 | curCircle.expandState = false; 76 | curCircle.size = curCircle.size-0.1; 77 | } 78 | else if(curCircle.size == minSize && curCircle.expandState == false){ 79 | curCircle.expandState = true; 80 | curCircle.size = curCircle.size+0.1; 81 | } 82 | context.arc(curCircle.left, curCircle.top, curCircle.size, 0, 2 * Math.PI, false); 83 | } 84 | 85 | context.closePath(); 86 | context.fill(); 87 | context.ellipse; 88 | } 89 | } 90 | 91 | 92 | var xVal = 0; 93 | 94 | window.requestAnimFrame = (function (callback) { 95 | 'use strict'; 96 | return window.requestAnimationFrame || 97 | window.webkitRequestAnimationFrame || 98 | window.mozRequestAnimationFrame || 99 | window.oRequestAnimationFrame || 100 | window.msRequestAnimationFrame || 101 | function (callback) { 102 | window.setTimeout(callback, 1000/60); 103 | }; 104 | })(); 105 | 106 | function animate() { 107 | 'use strict'; 108 | var canvas = document.getElementById("canvas1"), 109 | context = canvas.getContext("2d"); 110 | 111 | // clear the canvas 112 | context.clearRect(0, 0, canvas.width, canvas.height); 113 | 114 | 115 | // draw the next frame 116 | xVal++; 117 | build(); 118 | 119 | //console.log("Prep: animate ==> requestAnimFrame"); 120 | // request a new frame 121 | requestAnimFrame(function () { 122 | animate(); 123 | }); 124 | } 125 | window.onload = function () { 126 | 'use strict'; 127 | canvas.width = document.getElementById('home').clientWidth; 128 | canvas.height = document.getElementById('home').clientHeight; 129 | buildArray(); 130 | animate(); 131 | }; 132 | 133 | 134 | window.onresize = function () { 135 | 'use strict'; 136 | console.log("resize"); 137 | canvas.width = document.getElementById('home').clientWidth; 138 | canvas.height = document.getElementById('home').clientHeight; 139 | //buildArray(); 140 | animate(); 141 | }; -------------------------------------------------------------------------------- /js/content.js: -------------------------------------------------------------------------------- 1 | var contentTemplate = "
\ 2 |
\ 3 | image\ 4 |
\ 5 | img\ 6 |

\ 7 |

\ 8 |

\ 9 | Keynote Speakers:\ 10 |

\ 11 |

\ 12 |
\ 13 | More\ 14 |
"; 15 | 16 | var contentArray = [ 17 | { 18 | "image": "img/timeline/PyCon2009.jpg", 19 | "taskTitle": "PyCon India 2009", 20 | "title": "1st Year of PyCon India", 21 | "date": "26th and 27th September, 2009", 22 | "location": "Indian Institute of Science, Bangalore", 23 | "speakers": "● Prabhu Ramachandran", 24 | "description": "Pycon India 2009 is a community conference by the Python developer community. \ 25 | A purely volunteer effort, it is being hosted for the first time in India, and \ 26 | will attract some of the best Python developers in India and abroad.", 27 | "link": "https://in.pycon.org/2009/" 28 | }, 29 | { 30 | "image": "img/timeline/PyCon2010.jpg", 31 | "taskTitle": "PyCon India 2010", 32 | "title": "2nd Year of PyCon India", 33 | "date": "25th and 26th September, 2010", 34 | "location": "M S Ramaiah Institute of Technology, Bangalore", 35 | "speakers": "● David Goodger", 36 | "description": "PyCon India 2010 is the primary Python conference in India. A purely \ 37 | volunteer effort, it is being hosted for the second time in India, \ 38 | and will attract some of the best Python developers in India and abroad.", 39 | "link": "https://in.pycon.org/2010/" 40 | }, 41 | { 42 | "image": "img/timeline/PyCon2011.jpg", 43 | "taskTitle": "PyCon India 2011", 44 | "title": "3rd Year of PyCon India", 45 | "date": "16th - 18th September 2011", 46 | "location": "Symbiosis Vishwabhavan, S.B. Road, Pune", 47 | "speakers": "● Raymond Hettinger", 48 | "description": "PyCon India 2011 is the primary Python conference in India. A purely \ 49 | volunteer effort, it is being hosted for the third time in India, and \ 50 | will attract some of the best Python developers in India and abroad.", 51 | "link": "https://in.pycon.org/2011/" 52 | }, 53 | { 54 | "image": "img/timeline/PyCon2012.jpg", 55 | "taskTitle": "PyCon India 2012", 56 | "title": "4th Year of PyCon India", 57 | "date": "28th - 30th September 2012 ", 58 | "location": "Christ University Campus, Bangalore", 59 | "speakers": "● David Mertz
● Jacob Kaplan-Moss", 60 | "description": "Pycon India 2009 is a community conference by the Python developer community. \ 61 | A purely volunteer effort, it is being hosted for the fourth time in India, and \ 62 | will attract some of the best Python developers in India and abroad.", 63 | "link": "https://in.pycon.org/2012/" 64 | }, 65 | { 66 | "image": "img/timeline/PyCon2013.jpg", 67 | "taskTitle": "PyCon India 2013", 68 | "title": "5th Year of PyCon India", 69 | "date": "30th August - 1th September 2013", 70 | "location": "NIMHANS Convention Centre, Bangalore", 71 | "speakers": "● Kiran Jonnalagadda
● Kenneth Reitz", 72 | "description": "PyCon India, the premier conference in India on using and developing the Python \ 73 | programming language is conducted annually by the Python developer community and \ 74 | it attracts the best Python programmers from across the country and abroad.", 75 | "link": "https://in.pycon.org/2013/" 76 | }, 77 | { 78 | "image": "img/timeline/PyCon2014.jpg", 79 | "taskTitle": "PyCon India 2014", 80 | "title": "6th Year of PyCon India", 81 | "date": "26th - 28th September 2014", 82 | "location": "NIMHANS Convention Centre, Bangalore", 83 | "speakers": "● Kushal Das
● Michael Foord", 84 | "description": "PyCon India, the premier conference in India on using and \ 85 | developing the Python programming language is conducted annually \ 86 | by the Python developer community. It attracts the best Python \ 87 | programmers from across the country and abroad.", 88 | "link": "https://in.pycon.org/2014/" 89 | }, 90 | { 91 | "image": "img/timeline/PyCon2015.jpg", 92 | "taskTitle": "PyCon India 2015", 93 | "title": "7th Year of PyCon India", 94 | "date": "3rd - 5th October 2015", 95 | "location": "NIMHANS Convention Centre, Bangalore", 96 | "speakers": "● Ajith Kumar
● Nicholas H.Tollervey", 97 | "description": "PyCon India, the premier conference in India on using \ 98 | and developing the Python programming language is conducted \ 99 | annually by the Python developer community. It attracts the \ 100 | best Python programmers from across the country and abroad.", 101 | "link": "https://in.pycon.org/2015/" 102 | }, 103 | { 104 | "image": "img/timeline/PyCon2016.jpg", 105 | "taskTitle": "PyCon India 2016", 106 | "title": "8th Year of PyCon India", 107 | "date": "23rd - 25th September 2016", 108 | "location": "JNU Convention Centre, New Delhi", 109 | "speakers": "● Baishampayan Ghose
● Van L
● Andreas Mueller", 110 | "description": "PyCon India, the premier conference in India on using and \ 111 | developing the Python programming language is conducted \ 112 | annually by the Python developer community. It attracts \ 113 | the best Python programmers from across the country and abroad.", 114 | "link": "https://in.pycon.org/2016/" 115 | }, 116 | { 117 | "image": "img/timeline/PyCon2017.jpg", 118 | "taskTitle": "PyCon India 2017", 119 | "title": "9th Year of PyCon India", 120 | "date": "2nd - 5th November, 2017", 121 | "location": "Shaheed Sukhdev College Of Business Studies, New Delhi", 122 | "speakers": "● Noufal Ibrahim
● Elizabeth Ferrao
● Peter Wang", 123 | "description": "PyCon India, the premier conference in India on using and \ 124 | developing the Python programming language is conducted \ 125 | annually by the Python developer community. It attracts the \ 126 | best Python programmers from across the country and abroad.", 127 | "link": "https://in.pycon.org/2017/" 128 | }, 129 | { 130 | "image": "img/card-image.jpg", 131 | "taskTitle": "PyCon India 2018", 132 | "title": "10th Year of PyCon India", 133 | "date": "5th - 9th October 2018", 134 | "location": "Hyderabad International Convention Centre, Hyderabad", 135 | "speakers": "", 136 | "description": "PyCon India, the premier conference in India on using and \ 137 | developing the Python programming language is conducted \ 138 | annually by the Python developer community. It attracts the \ 139 | best Python programmers from across the country and abroad.", 140 | "link": "https://in.pycon.org/2018/" 141 | } 142 | ]; -------------------------------------------------------------------------------- /js/custom.js: -------------------------------------------------------------------------------- 1 | (function ($) { 2 | 3 | new WOW().init(); 4 | 5 | jQuery(window).load(function() { 6 | jQuery("#preloader").delay(100).fadeOut("slow"); 7 | jQuery("#load").delay(100).fadeOut("slow"); 8 | }); 9 | 10 | 11 | //jQuery to collapse the navbar on scroll 12 | $(window).scroll(function() { 13 | // share-bar-ribbon class toggle 14 | if($(".share-bar-ribbon").offset().top > $("#venue").offset().top - $(".share-bar-ribbon").outerHeight()){ 15 | $(".share-bar-ribbon").removeClass('share-bar-ribbon--dark').addClass('share-bar-ribbon--light'); 16 | } 17 | else{ 18 | $(".share-bar-ribbon").removeClass('share-bar-ribbon--light').addClass('share-bar-ribbon--dark'); 19 | } 20 | }); 21 | 22 | //jQuery for page scrolling feature - requires jQuery Easing plugin 23 | $(function() { 24 | 25 | $('.navbar-custom li a').on('click', function(event) { 26 | 27 | if( $(this).is('a:not([href^="#"])') || $(this).attr("href") == '#' ) { 28 | return; 29 | } 30 | var $anchor = $(this); 31 | $('html, body').stop().animate({ 32 | scrollTop: $($anchor.attr('href')).offset().top 33 | }, 1500, 'easeInOutExpo'); 34 | event.preventDefault(); 35 | }); 36 | 37 | $('.page-scroll a').on('click', function(event) { 38 | var $anchor = $(this); 39 | $('html, body').stop().animate({ 40 | scrollTop: $($anchor.attr('href')).offset().top 41 | }, 1500, 'easeInOutExpo'); 42 | event.preventDefault(); 43 | }); 44 | 45 | }); 46 | 47 | })(jQuery); 48 | -------------------------------------------------------------------------------- /js/index.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | $('div#banner-text > h1').delay(400).fadeIn(1000); 3 | $('div#banner-text > h2').delay(1400).fadeIn(1000); 4 | }); 5 | 6 | $(window).scroll(function() { 7 | if ($(".navbar").offset().top > 50) { 8 | $(".navbar .container").css("width","1170px"); 9 | $(".index-logo").css("display","inline-block"); 10 | $(".index-logo").css("float","left"); 11 | $(".navbar-fixed-top").addClass("top-nav-collapse"); 12 | } else { 13 | $(".navbar .container").css("width","970px"); 14 | $(".index-logo").css("display","none"); 15 | $(".navbar-fixed-top").removeClass("top-nav-collapse"); 16 | } 17 | }); 18 | -------------------------------------------------------------------------------- /js/index_canvas.js: -------------------------------------------------------------------------------- 1 | var canvas = document.getElementById('canvas'), 2 | container = document.getElementById('banner'); 3 | 4 | var SCREEN_HEIGHT = Math.min(container.clientHeight * 2 / 3, container.clientWidth); 5 | var SCREEN_WIDTH = container.clientWidth; 6 | var SCREEN_ASPECT_RATIO = SCREEN_WIDTH / SCREEN_HEIGHT; 7 | 8 | var renderer, camera, scene; 9 | 10 | var ANIMATION_FRAME_LENGTH = 30, 11 | INTERACT_DISTANCE = 2.5; 12 | var objetArray = [], 13 | animationQueue = []; 14 | 15 | var color1 = [0 / 255, 110 / 255, 255 / 255], 16 | color2 = [0 / 255, 255 / 255, 140 / 255]; 17 | 18 | var bitmap = []; 19 | var BITMAP_SKIP = 1; 20 | 21 | var fov = 90; 22 | var cameraPos = [0, 0, 30]; 23 | var cameraLookAt = [0, 0, 0]; 24 | var viewHeight = 2 * Math.tan(THREE.Math.degToRad(fov / 2)) * cameraPos[2], 25 | viewWidth = viewHeight * SCREEN_ASPECT_RATIO; 26 | 27 | var mouse = new THREE.Vector3(10000, 10000, -1), 28 | mouseScaled = new THREE.Vector3(10000, 10000, -1); 29 | 30 | function init () { 31 | // Global Variables 32 | canvas.addEventListener('mousemove', onDocumentMouseMove, false); 33 | 34 | /* If you are familiar with python and opencv 35 | you can use this python script to generate custom bitmaps 36 | -------------------- 37 | https://git.io/vdBAu 38 | -------------------- 39 | */ 40 | var data = '#000000000000000011111111110000000000000000' + 41 | '#000000000000011111111111111100000000000000' + 42 | '#000000000000111111111111111111000000000000' + 43 | '#000000000001110001111111111111000000000000' + 44 | '#000000000001100001111111111111100000000000' + 45 | '#000000000001100001111111111111100000000000' + 46 | '#000000000001110001111111111111100000000000' + 47 | '#000000000001111111111111111111100000000000' + 48 | '#000000000001111111111111111111100000000000' + 49 | '#000000000000000000000111111111100000000000' + 50 | '#000000000000000000000111111111100000000000' + 51 | '#000011111111111111111111111111100111110000' + 52 | '#000111111111111111111111111111100111111000' + 53 | '#001111111111111111111111111111100111111100' + 54 | '#001111111111111111111111111111100111111100' + 55 | '#011111111111111111111111111111100111111110' + 56 | '#011111111111111111111111111111101111111110' + 57 | '#011111111111111111111111111111001111111110' + 58 | '#011111111111111111111111111111001111111110' + 59 | '#111111111111111111111111111100011111111111' + 60 | '#111111111111110000000000000000111111111111' + 61 | '#111111111111000000000000000011111111111111' + 62 | '#111111111110001111111111111111111111111111' + 63 | '#011111111100111111111111111111111111111110' + 64 | '#011111111100111111111111111111111111111110' + 65 | '#011111111101111111111111111111111111111110' + 66 | '#011111111001111111111111111111111111111110' + 67 | '#001111111001111111111111111111111111111100' + 68 | '#001111111001111111111111111111111111111100' + 69 | '#000111111001111111111111111111111111111000' + 70 | '#000011111001111111111111111111111111110000' + 71 | '#000000000001111111111000000000000000000000' + 72 | '#000000000001111111111000000000000000000000' + 73 | '#000000000001111111111111111111100000000000' + 74 | '#000000000001111111111111111111100000000000' + 75 | '#000000000001111111111111100011100000000000' + 76 | '#000000000001111111111111100001100000000000' + 77 | '#000000000001111111111111100001100000000000' + 78 | '#000000000000111111111111100011100000000000' + 79 | '#000000000000011111111111111111000000000000' + 80 | '#000000000000001111111111111110000000000000' + 81 | '#000000000000000001111111110000000000000000'; 82 | 83 | for (var i = 0; i < data.length; i++) { 84 | if (data[i] === '#') { 85 | bitmap.push([]); 86 | } 87 | else { 88 | bitmap[bitmap.length - 1].push(data[i] - '0'); 89 | } 90 | } 91 | 92 | // Renderer 93 | renderer = new THREE.WebGLRenderer({ 94 | alpha: true, 95 | antialias: true, 96 | canvas: canvas 97 | }); 98 | renderer.setClearColor(0x212121, 0); 99 | renderer.setPixelRatio(window.devicePixelRatio); 100 | renderer.shadowMap.enabled = true; 101 | renderer.shadowMap.type = THREE.PCFSoftShadowMap; 102 | renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT); 103 | 104 | // Camera and Controls 105 | camera = new THREE.PerspectiveCamera(fov, SCREEN_ASPECT_RATIO, 0.1, 1000); 106 | // camera = new THREE.OrthographicCamera(-viewWidth, viewWidth, viewHeight, -viewHeight, 1, 300); 107 | camera.position.set(cameraPos[0], cameraPos[1], cameraPos[2]); 108 | camera.lookAt(new THREE.Vector3(cameraLookAt[0], cameraLookAt[1], cameraLookAt[2])); 109 | 110 | // Scene 111 | scene = new THREE.Scene(); 112 | 113 | // Lights 114 | 115 | // Making Object Array 116 | var xOffset = -bitmap[0].length / (BITMAP_SKIP * 2); 117 | var yOffset = bitmap.length / (BITMAP_SKIP * 2); 118 | for (var i = 0; i < bitmap.length; i += BITMAP_SKIP) { 119 | for (var j = 0; j < bitmap[i].length; j += BITMAP_SKIP) { 120 | if (bitmap[i][j] === 1) { 121 | var planeGeometry = new THREE.PlaneGeometry(1, 1); 122 | var circleGeometry = new THREE.CircleGeometry(1, 5); 123 | var frac = i / bitmap.length; 124 | // Materials 125 | var planeMaterial = new THREE.MeshBasicMaterial({ 126 | color: new THREE.Color( 127 | color1[0] * frac + color2[0] * (1 - frac), 128 | color1[1] * frac + color2[1] * (1 - frac), 129 | color1[2] * frac + color2[2] * (1 - frac) 130 | ), 131 | transparent: true, 132 | opacity: THREE.Math.randFloat(0.4, 0.6), 133 | side: THREE.DoubleSide 134 | }); 135 | 136 | var circleMaterial = new THREE.MeshBasicMaterial({ 137 | color: new THREE.Color(1, 1, 1), 138 | transparent: true, 139 | opacity: THREE.Math.randFloat(0.8, 1), 140 | side: THREE.DoubleSide 141 | }); 142 | 143 | // Mesh 144 | var planeMesh = new THREE.Mesh(planeGeometry, planeMaterial); 145 | planeMesh.position.set(xOffset + j / BITMAP_SKIP, yOffset - i / BITMAP_SKIP, 0); 146 | var randWidth = THREE.Math.randFloat(0.6, 1.2); 147 | var randHeight = randWidth; 148 | planeMesh.scale.set(randWidth, randHeight, 1); 149 | scene.add(planeMesh); 150 | objetArray.push([planeMesh, false]); 151 | } 152 | } 153 | } 154 | 155 | // Geometry 156 | 157 | // Materials 158 | 159 | // Mesh 160 | 161 | // Helpers 162 | 163 | // Add Stuff to Scene 164 | } 165 | 166 | function animate () { 167 | requestAnimationFrame(animate); 168 | render(); 169 | } 170 | 171 | function render () { 172 | while (animationQueue.length > 0) { 173 | var objIndex = animationQueue[0][0]; 174 | var aniFrame = animationQueue[0][1]; 175 | if (aniFrame > ANIMATION_FRAME_LENGTH) { 176 | objetArray[objIndex][1] = false; 177 | animationQueue.shift(); 178 | } 179 | else { 180 | break; 181 | } 182 | } 183 | 184 | for (var i = 0; i < objetArray.length; i++) { 185 | var obj = objetArray[i][0]; 186 | var isAnimating = objetArray[i][1]; 187 | if (isAnimating === false) { 188 | var px = obj.position.x; 189 | var py = obj.position.y; 190 | var dist = Math.sqrt(Math.pow(px - mouseScaled.x, 2) + Math.pow(py - mouseScaled.y, 2)); 191 | if (dist < INTERACT_DISTANCE) { 192 | var startPosVector = obj.position.clone(); 193 | var mouseRepelVector = new THREE.Vector3() 194 | .subVectors(startPosVector, mouseScaled) 195 | .multiplyScalar(THREE.Math.randFloat(INTERACT_DISTANCE + 0.5, INTERACT_DISTANCE + 2) - dist); 196 | var endPosVector = new THREE.Vector3() 197 | .addVectors(startPosVector, mouseRepelVector); 198 | animationQueue.push([i, 0, startPosVector, endPosVector]); 199 | objetArray[i][1] = true; 200 | } 201 | } 202 | } 203 | 204 | for (var i = 0; i < animationQueue.length; i++) { 205 | var obj = objetArray[animationQueue[i][0]][0]; 206 | var aniFrame = animationQueue[i][1]; 207 | var startPosVector = animationQueue[i][2]; 208 | var endPosVector = animationQueue[i][3]; 209 | var curPosVector = new THREE.Vector3(); 210 | var frac = 1 - Math.abs(aniFrame - (ANIMATION_FRAME_LENGTH / 2)) / (ANIMATION_FRAME_LENGTH / 2); 211 | frac = easeOutQuad(frac); 212 | curPosVector.lerpVectors(startPosVector, endPosVector, frac); 213 | 214 | obj.position.x = curPosVector.x; 215 | obj.position.y = curPosVector.y; 216 | obj.position.z = curPosVector.z; 217 | animationQueue[i][1] += 1; 218 | } 219 | 220 | mouse = new THREE.Vector3(10000, 10000, -2); 221 | mouseScaled = new THREE.Vector3(10000, 10000, -2); 222 | 223 | renderer.render(scene, camera); 224 | } 225 | 226 | function onWindowResize () { 227 | var SCREEN_HEIGHT = Math.min(container.clientHeight * 2 / 3, container.clientWidth); 228 | var SCREEN_WIDTH = container.clientWidth; 229 | var SCREEN_ASPECT_RATIO = SCREEN_WIDTH / SCREEN_HEIGHT; 230 | camera.aspect = SCREEN_ASPECT_RATIO; 231 | camera.updateProjectionMatrix(); 232 | renderer.setSize(SCREEN_WIDTH, SCREEN_HEIGHT); 233 | console.log(SCREEN_WIDTH + 'x' + SCREEN_HEIGHT); 234 | } 235 | 236 | function onDocumentMouseMove (event) { 237 | var rect = canvas.getBoundingClientRect(); 238 | 239 | mouse.x = event.clientX - rect.left; 240 | mouse.y = event.clientY - rect.top; 241 | 242 | mouseScaled.x = mouse.x * viewWidth / SCREEN_WIDTH - viewWidth / 2; 243 | mouseScaled.y = -mouse.y * viewHeight / SCREEN_HEIGHT + viewHeight / 2; 244 | } 245 | 246 | function sigmoid (t) { 247 | return 1 / (1 + Math.pow(Math.E, -t)); 248 | } 249 | 250 | // no easing, no acceleration 251 | function linear (t) { 252 | return t; 253 | } 254 | // accelerating from zero velocity 255 | function easeInQuad (t) { 256 | return t * t; 257 | } 258 | // decelerating to zero velocity 259 | function easeOutQuad (t) { 260 | return t * (2 - t); 261 | } 262 | // acceleration until halfway, then deceleration 263 | function easeInOutQuad (t) { 264 | return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; 265 | } 266 | // accelerating from zero velocity 267 | function easeInCubic (t) { 268 | return t * t * t; 269 | } 270 | // decelerating to zero velocity 271 | function easeOutCubic (t) { 272 | return (--t) * t * t + 1; 273 | } 274 | // acceleration until halfway, then deceleration 275 | function easeInOutCubic (t) { 276 | return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; 277 | } 278 | // accelerating from zero velocity 279 | function easeInQuart (t) { 280 | return t * t * t * t; 281 | } 282 | // decelerating to zero velocity 283 | function easeOutQuart (t) { 284 | return 1 - (--t) * t * t * t; 285 | } 286 | // acceleration until halfway, then deceleration 287 | function easeInOutQuart (t) { 288 | return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * (--t) * t * t * t; 289 | } 290 | // accelerating from zero velocity 291 | function easeInQuint (t) { 292 | return t * t * t * t * t; 293 | } 294 | // decelerating to zero velocity 295 | function easeOutQuint (t) { 296 | return 1 + (--t) * t * t * t * t; 297 | } 298 | // acceleration until halfway, then deceleration 299 | function easeInOutQuint (t) { 300 | return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * (--t) * t * t * t * t; 301 | } 302 | 303 | // Event Handlers 304 | window.addEventListener('resize', onWindowResize); 305 | 306 | init(); 307 | animate(); 308 | -------------------------------------------------------------------------------- /js/jquery.easing.min.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ 3 | * 4 | * Uses the built in easing capabilities added In jQuery 1.1 5 | * to offer multiple easing options 6 | * 7 | * TERMS OF USE - EASING EQUATIONS 8 | * 9 | * Open source under the BSD License. 10 | * 11 | * Copyright © 2001 Robert Penner 12 | * All rights reserved. 13 | * 14 | * TERMS OF USE - jQuery Easing 15 | * 16 | * Open source under the BSD License. 17 | * 18 | * Copyright © 2008 George McGinley Smith 19 | * All rights reserved. 20 | * 21 | * Redistribution and use in source and binary forms, with or without modification, 22 | * are permitted provided that the following conditions are met: 23 | * 24 | * Redistributions of source code must retain the above copyright notice, this list of 25 | * conditions and the following disclaimer. 26 | * Redistributions in binary form must reproduce the above copyright notice, this list 27 | * of conditions and the following disclaimer in the documentation and/or other materials 28 | * provided with the distribution. 29 | * 30 | * Neither the name of the author nor the names of contributors may be used to endorse 31 | * or promote products derived from this software without specific prior written permission. 32 | * 33 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 34 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 35 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 36 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 37 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 38 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 39 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 40 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 41 | * OF THE POSSIBILITY OF SUCH DAMAGE. 42 | * 43 | */ 44 | jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(!e)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); -------------------------------------------------------------------------------- /js/schedule.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | $.getJSON('./data/schedule.json',function(response){ 3 | createScheduleBlock(response); 4 | }); 5 | }); 6 | 7 | createScheduleBlock = function(data){ 8 | var scheduleContent = ""; 9 | var tab = 1; 10 | $.each(data, function(key, value) { 11 | for(var i = 0; i < value.length; i++) { 12 | scheduleContent += "
" 13 | scheduleContent += createScheduleForADay(value[i].TimeTable); 14 | scheduleContent += "
" 15 | tab += 1; 16 | } 17 | }); 18 | 19 | $("#schedule-content").append(scheduleContent); 20 | } 21 | 22 | createScheduleForADay = function (item) { 23 | var dayContent = ''; 24 | for(i = 0; i < item.length; i ++){ 25 | if(item[i].Tracks.length == 1 && 26 | (["CONFERENCE REGISTRATION", "WORKSHOP REGISTRATION", "LUNCH", "Morning Tea Break", "Evening Tea Break", "Lightning Talks"].indexOf(item[i].Tracks[0].Title) >= 0)){ 27 | dayContent += createLunchBreakfastRow(item[i]); 28 | } 29 | else { 30 | dayContent += createTracksRow(item[i]); 31 | } 32 | } 33 | 34 | return dayContent; 35 | } 36 | 37 | createLunchBreakfastRow = function(item) { 38 | var rowContent = ''; 39 | 40 | rowContent += "
" + 41 | "
"+ 42 | "" + 43 | item.Time + 44 | ""+ 45 | "
"+ 46 | "
"+ 47 | ""+ 48 | item.Tracks[0].Title + 49 | "" 50 | 51 | if (item.Tracks[0].Hall != undefined) { 52 | rowContent += "
"+item.Tracks[0].Hall+""; 53 | } 54 | 55 | rowContent += "
"; 56 | return rowContent; 57 | } 58 | 59 | 60 | createTracksRow = function(item) { 61 | var rowContent = ''; 62 | 63 | rowContent += "
"+ 64 | "
"+ 65 | ""+ 66 | item.Time+ 67 | ""+ 68 | "
"; 69 | 70 | var gridSize = Math.floor(9 / item.Tracks.length); 71 | 72 | for (var i = 0; i < item.Tracks.length; i++) { 73 | rowContent += "
"+ 74 | ""+ 75 | ""+ 77 | item.Tracks[i].Title+ 78 | ""+ 79 | ""+ 80 | "
By "+item.Tracks[i].Speaker+""+ 81 | "
"+item.Tracks[i].Hall+""+ 82 | "
"; 83 | } 84 | rowContent += "
"; 85 | return rowContent; 86 | } 87 | -------------------------------------------------------------------------------- /js/speaker.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | $.getJSON('./data/speakers.json', function(json) { 3 | var html = ''; 4 | if (Object.keys(json) == 0) { 5 | html += '

No speakers found

'; 6 | } else { 7 | $.each(json, function(key, value) { 8 | if (value.length > 0) { 9 | html += '

' + key + '

'; 10 | for (var i = 0; i < value.length; i++) { 11 | item = value[i]; 12 | html += 13 | '
profile-sample2

' + 16 | item.Name + 17 | '

' + 18 | item.Designation + 19 | '
' + 20 | item.City; 21 | if (item.Description) { 22 | html += '

' + item.Description + '

'; 23 | } 24 | if (item.proposal_link) { 25 | html += 26 | ''; 29 | } 30 | if (item.social_links.twitter) { 31 | html += 32 | '
'; 35 | } 36 | if (item.social_links.linkedin) { 37 | html += 38 | ''; 41 | } 42 | if (item.social_links.github) { 43 | html += 44 | ''; 47 | } 48 | if (item.social_links.website) { 49 | html += 50 | ''; 53 | } 54 | html += '
'; 55 | } 56 | } 57 | }); 58 | } 59 | $('.speakers').append(html); 60 | }); 61 | }); 62 | -------------------------------------------------------------------------------- /js/sponsor.js: -------------------------------------------------------------------------------- 1 | 2 | $(document).ready(function(){ 3 | $.getJSON('./data/sponsors.json',function(response){ 4 | constructSponsorBlock(response); 5 | createPopupAnimation(); 6 | }); 7 | }); 8 | var popupId=1; 9 | constructSponsorBlock = function(data){ 10 | var sponsorContent = ""; 11 | 12 | $.each(data, function(key, value) { 13 | sponsorContent += "

" + key + "

"; 14 | var cellsEachRow = (["platinum", "silver"].indexOf(key.toLowerCase()) >= 0 ? 4 : 3); 15 | for(var i = 0; i < value.length; i += cellsEachRow) { 16 | sponsorGroups = value.slice(i, i+cellsEachRow); 17 | sponsorContent += "
" 18 | sponsorContent += buildSponsorRow(sponsorGroups, key); 19 | sponsorContent += "
"; 20 | } 21 | 22 | }); 23 | 24 | $("#sponsors-content").append(sponsorContent); 25 | } 26 | 27 | buildSponsorRow = function(items,category) { 28 | var totalItems = items.length; 29 | var offset = ''; 30 | var rowContent = ''; 31 | switch(totalItems) { 32 | case 1: 33 | offset = 'col-lg-offset-4 col-md-offset-4 '; 34 | break; 35 | case 2: 36 | offset = 'col-lg-offset-2 col-md-offset-2 '; 37 | break; 38 | default: 39 | offset = '' 40 | } 41 | 42 | for (var i = 0; i < totalItems; i++) { 43 | rowContent += ""; 50 | popupId=popupId+1; 51 | } 52 | return rowContent; 53 | } 54 | 55 | function createPopupAnimation(){ 56 | var id; 57 | $(".link").click(function(event){ 58 | $(".popup").css("display","none"); 59 | var id = $(this).attr("id"); 60 | $(".popup").eq(id-1).css("display","block"); 61 | }); 62 | $(".close").click(function(event){ 63 | $(".popup").css("display","none"); 64 | event.stopPropagation(); 65 | }); 66 | } 67 | -------------------------------------------------------------------------------- /js/timeline.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | var taskDetails = []; 3 | 4 | $.each(contentArray, function(key, value) { 5 | $template = $(contentTemplate); 6 | $template.find('.collage-img').attr('src', value['image']); 7 | $template.find('.yearly-title').html(value['title']); 8 | $template.find('.yearly-date').html('Date: '+value['date']); 9 | $template.find('.yearly-location').html('Location: '+value['location']); 10 | $template.find('.yearly-description').html(value['description']); 11 | $template.find('.yearly-speakers').html(value['speakers']); 12 | $template.find('.yearly-link').attr('href', value['link']); 13 | if (key == 9) { 14 | $template.find('.keynote-label').hide(); 15 | $template.find('.yearly-link').hide(); 16 | } 17 | taskDetails[key] = $template.prop('outerHTML'); 18 | }) 19 | 20 | // dataRoot : '/' 21 | var myMappedObject = [ 22 | 23 | { 24 | "isSelected": "", 25 | "taskTitle": contentArray[0]['taskTitle'], 26 | "taskSubTitle": "", 27 | "assignDate": "25/08/2009", 28 | "taskShortDate": "2009", 29 | "taskDetails": taskDetails[0] 30 | }, 31 | { 32 | "isSelected": "", 33 | "taskTitle": contentArray[1]['taskTitle'], 34 | "taskSubTitle": "", 35 | "assignDate": "25/08/2010", 36 | "taskShortDate": "2010", 37 | "taskDetails": taskDetails[1] 38 | }, 39 | 40 | { 41 | "isSelected": "", 42 | "taskTitle": contentArray[2]['taskTitle'], 43 | "taskSubTitle": "", 44 | "assignDate": "25/08/2011", 45 | "taskShortDate": "2011", 46 | "taskDetails": taskDetails[2] 47 | }, 48 | { 49 | "isSelected": "", 50 | "taskTitle": contentArray[3]['taskTitle'], 51 | "taskSubTitle": "", 52 | "assignDate": "25/08/2012", 53 | "taskShortDate": "2012", 54 | "taskDetails": taskDetails[3] 55 | }, 56 | { 57 | "isSelected": "", 58 | "taskTitle": contentArray[4]['taskTitle'], 59 | "taskSubTitle": "", 60 | "assignDate": "25/08/2013", 61 | "taskShortDate": "2013", 62 | "taskDetails": taskDetails[4] 63 | }, 64 | { 65 | "isSelected": "", 66 | "taskTitle": contentArray[5]['taskTitle'], 67 | "taskSubTitle": "", 68 | "assignDate": "25/08/2014", 69 | "taskShortDate": "2014", 70 | "taskDetails": taskDetails[5] 71 | }, 72 | { 73 | "isSelected": "", 74 | "taskTitle": contentArray[6]['taskTitle'], 75 | "taskSubTitle": "", 76 | "assignDate": "25/08/2015", 77 | "taskShortDate": "2015", 78 | "taskDetails": taskDetails[6] 79 | }, 80 | { 81 | "isSelected": "", 82 | "taskTitle": contentArray[7]['taskTitle'], 83 | "taskSubTitle": "", 84 | "assignDate": "25/08/2016", 85 | "taskShortDate": "2016", 86 | "taskDetails": taskDetails[7] 87 | }, 88 | 89 | { 90 | "isSelected": "", 91 | "taskTitle": contentArray[8]['taskTitle'], 92 | "taskSubTitle": "", 93 | "assignDate": "25/08/2017", 94 | "taskShortDate": "2017", 95 | "taskDetails": taskDetails[8] 96 | }, 97 | 98 | { 99 | "isSelected": "true", 100 | "taskTitle": contentArray[9]['taskTitle'], 101 | "taskSubTitle": "", 102 | "assignDate": "25/08/2018", 103 | "taskShortDate": "2018", 104 | "taskDetails": taskDetails[9] 105 | } 106 | ]; 107 | 108 | var jtLine = $('.myjtline').jTLine({ 109 | callType: 'jsonObject', 110 | structureObj: myMappedObject, 111 | map: { 112 | "dataRoot": "/", 113 | "title": "taskTitle", 114 | "subTitle": "taskSubTitle", 115 | "dateValue": "assignDate", 116 | "pointCnt": "taskShortDate", 117 | "bodyCnt": "taskDetails", 118 | "isSelected": "isSelected" 119 | }, 120 | onPointClick: function (e) { 121 | console.log(e); 122 | } 123 | }); 124 | }); -------------------------------------------------------------------------------- /js/wow.min.js: -------------------------------------------------------------------------------- 1 | /*! WOW - v0.1.6 - 2014-03-19 2 | * Copyright (c) 2014 Matthieu Aussaguel; Licensed MIT */(function(){var a,b=function(a,b){return function(){return a.apply(b,arguments)}};a=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in a)d=a[c],null!=d&&(b[c]=d);return b},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a}(),this.WOW=function(){function c(a){null==a&&(a={}),this.scrollCallback=b(this.scrollCallback,this),this.scrollHandler=b(this.scrollHandler,this),this.start=b(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults)}return c.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0},c.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():document.addEventListener("DOMContentLoaded",this.start)},c.prototype.start=function(){var a,b,c,d;if(this.boxes=this.element.getElementsByClassName(this.config.boxClass),this.boxes.length){if(this.disabled())return this.resetStyle();for(d=this.boxes,b=0,c=d.length;c>b;b++)a=d[b],this.applyStyle(a,!0);return window.addEventListener("scroll",this.scrollHandler,!1),window.addEventListener("resize",this.scrollHandler,!1),this.interval=setInterval(this.scrollCallback,50)}},c.prototype.stop=function(){return window.removeEventListener("scroll",this.scrollHandler,!1),window.removeEventListener("resize",this.scrollHandler,!1),null!=this.interval?clearInterval(this.interval):void 0},c.prototype.show=function(a){return this.applyStyle(a),a.className=""+a.className+" "+this.config.animateClass},c.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),a.setAttribute("style",this.customStyle(b,d,c,e))},c.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.setAttribute("style","visibility: visible;"));return e},c.prototype.customStyle=function(a,b,c,d){var e;return e=a?"visibility: hidden; -webkit-animation-name: none; -moz-animation-name: none; animation-name: none;":"visibility: visible;",b&&(e+="-webkit-animation-duration: "+b+"; -moz-animation-duration: "+b+"; animation-duration: "+b+";"),c&&(e+="-webkit-animation-delay: "+c+"; -moz-animation-delay: "+c+"; animation-delay: "+c+";"),d&&(e+="-webkit-animation-iteration-count: "+d+"; -moz-animation-iteration-count: "+d+"; animation-iteration-count: "+d+";"),e},c.prototype.scrollHandler=function(){return this.scrolled=!0},c.prototype.scrollCallback=function(){var a;return this.scrolled&&(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),!this.boxes.length)?this.stop():void 0},c.prototype.offsetTop=function(a){var b;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},c.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=window.pageYOffset,e=f+this.element.clientHeight-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},c.prototype.util=function(){return this._util||(this._util=new a)},c.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},c}()}).call(this); -------------------------------------------------------------------------------- /main-agenda.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/main-agenda.pdf -------------------------------------------------------------------------------- /open-spaces.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | PyCon India 2018 in Hyderabad | October 5th to 9th 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 46 | 47 | 48 | 100 | 101 | 102 |
103 | 104 |
105 |
106 |

Open Spaces

107 |

Open Spaces are self-organizing meetup-like events which happen in parallel with the main conference. They are held at Hall 3 on both days of the conference.

108 | 109 |

While most of the conference is planned well in advance, Open Spaces are created "just in time" by PyCon attendees during the conference. They provide a way for you to self-gather, self-define, and self-organize any way you like.

110 | 111 |

How do I participate in an Open Space?

112 |

It's pretty easy: Just show up :)

113 | 114 |

During PyCon, there will be an Open Spaces board at Hall 3, maintained by a facilitator from the organizing committee. The board act as a time table for all the Open Spaces, so you know where and when to go for the Open Spaces you're interested in. If a topic is not listed yet, find an open time slot and describe it to the facilitator!!

115 | 116 |

The speaker/host can decide the way he/she uses that space and time. Furthermore, the activities/talks at Open Spaces are not officially recorded in any ways, thus any topics that are more critical compared to the regular conference talks are welcomed.

117 | 118 |

Ideas for Open Spaces

119 |

Since the PyCon attendees are a diverse bunch, the Open Spaces are too. They can be some discussions about plenty of the usual suspects of technical subjects, from computer security to your favorite Python project to professional occupations like DevOps.

120 | 121 |

Here are a few ideas for potential Open Space topics and activities:

122 | 123 |
    124 |
  • Hacking/networking/devops
  • 125 |
  • How to contribute to open source - a help / mentoring group for beginners
  • 126 |
  • Framework specific Open Spaces, for example, Django or Flask
  • 127 |
  • Data visualization/science
  • 128 |
  • Natural language processing and generation (e.g. chatbots)
  • 129 |
  • Quantified Self
  • 130 |
  • Hacker space (maker projects) that use Python
  • 131 |
  • A space for organizers - of conferences, workshops, diversity initiatives (Django Girls, PyLadies, etc.)
  • 132 |
  • Support - how to avoid burnout
  • 133 |
  • Recruitment workshops
  • 134 |
135 | 136 |

If there's a certain Open Space you'd love to see at PyCon but you don't want to host it yourself, please suggest it on our list and maybe someone else will take up the topic and host an Open Space about it.

137 | 138 |

Role of the Facilitator

139 |

A facilitator would be available to make sure PyCon attendees have everything they need to do self organize and also ensure the open spaces happen in an orderly fashion.

140 | 141 |

When there is more than one idea, competing for the same time slot, facilitator will resolve the same thru voting/or any other means he deems fit.

142 | 143 |

The facilitator is responsible for maintaining the schedule for Open Spaces and also updating the rest of the attendees on twitter with hashtag - #OpenSpaces #PyConIndia2018 and also on google docs at Openspaces Schedule

144 | 145 |

Planned Open Spaces

146 |

If you have an idea for an Open Space, and a day and time when you want to meet/host, please email us at contact@in.pycon.org and we will try to accommodate by including them on schedule.

147 |
148 | 149 |
150 | 151 |
152 | 153 | 154 | 155 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | -------------------------------------------------------------------------------- /speakers.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | PyCon India 2018 in Hyderabad | October 5th to 9th 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 49 | 50 | 102 | 103 | 104 | 105 |
106 |
107 |
108 |
109 |

Speakers

110 |
111 |
112 |
113 |
114 |
115 | 116 | 117 | 118 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /sponsorship.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | PyCon India 2018 in Hyderabad | October 5th to 9th 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 67 | 68 | 69 | 70 | 122 | 123 | 124 |
125 | 126 |
127 |
128 |

Sponsorship

129 | 130 |

131 | PyCon India is the largest annual conference for the community using and developing the Python programming language in India. It attracts the best Python programmers across the country and abroad. PyCon India is a community conference, organized by volunteers. Formally it is run by the Python Software Society of India, which is a non-profit society under Indian law. 132 |

133 |

Download Sponsorship Prospectus

134 |

Why You Should Sponsor

135 |
    136 |
  • Put Your Business in the Spotlight
  • 137 | Stand out among the attendees by prominently displaying your products and marketing material. 138 | 139 |
  • Low Cost Marketing
  • 140 | Instead of spending a fortune on traditional advertisements, take a look at our reasonably priced sponsorship slabs and pick one - letting you be discovered and known to the cream of the community at maybe half (or even less!) of your marketing budget. 141 | 142 |
  • Hiring
  • 143 | The conference has a history of attracting smart folks from various backgrounds and also of making matches between them and potential employers. Get connected, make your pitch and find the best programmers to join your ranks! 144 | 145 |
  • Give Back to the Community
  • 146 | Establish your goodwill and show the community that you’re a reliable partner, willing to support the ecosystem. Sponsorship is a way of giving back to the community and thanking them for their support. 147 |
    148 | Your sponsorship helps PyCon India remain affordable and accessible to the widest possible audience. 149 |
  • Small Business Discount
  • 150 | To make PyCon India affordable to small businesses and startups, we provide a 50% discount for the Gold, Silver and Associate sponsorship slabs. 151 | Note: In order to avail this discount, your organization must have been established not more than two years ago, with fewer than 10 current employees. 152 | 153 |
  • Flexibility
  • 154 | Have something specific in mind? Please don’t hesitate to ask! We are more than happy to work with you and tailor sponsorship benefits to suit your needs. 155 |
156 | 157 |

158 | If you have any questions about sponsoring PyCon, please contact us at sponsorship@in.pycon.org. 159 |
160 | 161 |

162 |
163 | 164 | 165 | 166 |
167 | 168 |
169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 218 | -------------------------------------------------------------------------------- /sponsorship_prospectus.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pythonindia/inpycon2018/f2beb31a9b62c643c46f6c17ec646eb0c3e1ba3c/sponsorship_prospectus.pdf -------------------------------------------------------------------------------- /ticket-transfer.txt: -------------------------------------------------------------------------------- 1 | [Transfers] 2 | Hi Team, 3 | My name is {name}. Due to some unavoidable circumstances I won't be able to Attend PyCon India 2018. So I want to Transfer my Ticket. Here are the details of my Ticket 4 | 5 | Order No - 6 | Registration No - 7 | 8 | Please Transfer the ticket to {New Buyer name}. Find the details below 9 | 10 | First Name: 11 | Last Name: 12 | Mobile Number: 13 | Email Address: 14 | T-Shirt Size: 15 | Occupation: 16 | College/Organisation you represent: 17 | Years in College/Experience: 18 | 19 | *Note: If there are multiple people please send all the Attendee details. 20 | 21 | [Cancellations] 22 | Hi Team, 23 | My name is {name}. Due to some unavoidable circumstances I won't be able to Attend PyCon India 2018. If possible please Cancel my ticket and Transfer it to someone willing to attend the Conference. Here are the details of my Ticket 24 | 25 | Order No - 26 | Registration No - 27 | 28 | I am fully aware that cancellation is possible only if there is people waiting in the queue to buy a ticket. -------------------------------------------------------------------------------- /volunteer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | PyCon India 2018 in Hyderabad | October 5th to 9th 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 48 | 100 | 101 | 102 | 103 |
104 |
105 |
106 |

Become A Volunteer

107 |
108 |

109 | PyCon India is a community event. Here each and every task is done by 110 | a volunteer. And here is the opportunity for You to be a part of the community. 111 |

112 |

113 | But before you register to volunteer, there are few things you should be aware of 114 |

115 |
    116 |
  • Volunteering takes time and effort, sometimes a lot of it. For online activities like handling social networks 117 | or handling registrations etc take a lot of time. And sometimes rapid decisions have to be made. So if you're 118 | volunteering, make sure you have the time. If you're unavailable at certain time period of the day, let us 119 | know beforehand. 120 |
  • 121 | 122 |
  • If you're volunteering for offline activities e.g. on spot registration or settings up stages or handling video 123 | recording, anything that has to be done on the venue during the event, there is a good chance that you won't 124 | be able to attend the sessions you just registered for. If someone needs you, you have to be there. 125 |
  • 126 | 127 |
  • Volunteering is not a free way into the event. At PyCon India, everybody buys tickets. Even the event organizers 128 | buy tickets. We volunteer because we love Python and PyCon, and want the event to be awesome.
  • 129 | 130 |
  • Volunteers are the most important part of the event. Without the volunteers, the event cannot happen. So even 131 | if you are attending PyCon for the first time, we encourage you to volunteer with whatever you can. If you 132 | don't want to miss any sessions, then volunteer for smaller tasks.
  • 133 |
134 |

We’re incorporating workgroup structure which will take responsibility of getting things done for various teams 135 | of PyCon India 2018.

136 |

Workgroup - Core group of people responsible for the execution of tasks mandated for a given team. The workgroup 137 | is also responsible for setting guidelines on the team's working. 138 |
139 | Volunteers - The workgroup along with the volunteers execute the various tasks in the shape and form as 140 | agreed within the workgroup. Each Volunteer team will consist of people from the Workgroup who will assign tasks 141 | and manage the group.

142 |

143 | If you're interested in volunteering, join us on our Discord channel, subscribe to the mailing list. 144 | Please don't subscribe to the daily digest. Digests are always behind the time and meant for those who 145 | just wants to stay updated and not participate in conversations. If you're already subscribed to the mailing 146 | list, go ahead, login and change your subscription 147 | type. Also, 148 | please don't reply to a digest. 149 |

150 |

151 | To ease the communication between different volunteer teams, we have decided to use Discord as our chat platform this year. Discord is a free to use chat platform where we can have different channels for 152 | discussion. It is quite popular in the open source community. 153 | For a more comfortable transition to Discord, please consider reading this document. 154 | Join the PyCon India 2018 Group from the link below 155 |

156 |

157 | 158 | 159 | 160 | 162 | 163 | 164 | Discord Invite 165 | 166 |

167 |

168 | Also, if you have any question, we'd really appreciate if you go through the mailing list archives first, and see if it's already answered. If not, you can talk to us at the discord channel or send an email to 169 | the mailing list. 170 |

171 |

172 | Hope to see you at the event. Happy volunteering. :) 173 |

174 |
175 |
176 |
177 |
178 | 179 | 180 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | -------------------------------------------------------------------------------- /workshop-prerequisites.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | PyCon India 2018 in Hyderabad | October 5th to 9th 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 57 | 109 | 110 |
111 |
112 |
113 |

Workshop Prerequisites

114 |

115 | Below are the prerequisites detailed for the workshops either by a Keynote or a Sponsor. All other workshop details can be seen from the CFP itself. 116 |

117 |
118 |
119 |
120 |

Jupyter hub and Binder

121 |

by Carol Wiling

122 |

123 | Abstract - 124 | We'll take an in-depth look at JupyterLab and its use for data science and scientific computing. We'll look at the new user interface functionality available to users of JupyterLab. Later, we will move beyond an individual's workflow with JupyterLab and see how JupyterHub brings JupyterLab to groups of users. We'll wrap up with a discussion of Binder and its ability to provide ephemeral computing environments for Jupyter notebooks and beyond. 125 |

126 |
127 |
128 |

Sponsored Workshops

129 |
130 |
131 |

Understanding NLP - What's the feeling ?

132 |

By Lakshya Sivaramakrishnan (Google)

133 |

134 | Abstract - 135 | This intermediate level talk would cover the basics required for natural language processing using NLTK in Python. We would then see it working in action through a sentiment analysis use-case. 136 |
137 | Prerequisites - 138 | Basic knowledge of Python. 139 |

140 |
141 |
142 |
143 |

Programming a Quantum Computer using Cirq

144 |

by Vamsi Krishna Devabathini (Google)

145 |

146 | Abstract - 147 | This intermediate level workshop will focus on introduction to quantum computing and Cirq, python framework for creating quantum programming. It also includes a hands on tutorials implementing simple quantum algorithm(s) using Cirq. 148 |
149 | Prerequisites - 150 | Basic knowledge of Python. Knowledge of Quantum computing is a plus but not required. 151 |

152 |
153 |
154 |
155 |

Python ML On the Cloud

156 |

By Krishna Balaga (IBM)

157 |

158 | Abstract - 159 | A no tricks under the sleeve session with pure python at its heart for understanding and 160 | Solving Machine Learning problems. This can be categorized as a beginner level workshop 161 | on how to get the basics right. We start with a problem statement and then proceed with 162 | obtaining the required dataset, getting it ready for our ML model, build and evaluate the 163 | model and finally we teach you how to host your ML model on the cloud so that it's just an 164 | API call away. By the end of the session, you will be able to scheme out a healthy approach 165 | to any harder set of machine learning problems. 166 |
167 | Agenda - 168 |

    169 |
  1. Introduction to Machine Learning 170 |
      171 |
    • AI vs ML vs DL
    • 172 |
    • Supervised vs Unsupervised
    • 173 |
    • Ml Algorithms and its use cases
    • 174 |
    175 |
  2. 176 |
  3. Machine Learning Pipeline 177 |
      178 |
    • Golden Rule of ML
    • 179 |
    • Goals of Pre-processing 180 |
        181 |
      • Handling missing data
      • 182 |
      • Data Transformation
      • 183 |
      • Outliers
      • 184 |
      • Categorical Data
      • 185 |
      186 |
    • 187 |
    • Feature Extraction 188 |
        189 |
      • Co-relation of Features
      • 190 |
      • Dimensionality Reduction
      • 191 |
      • PCA
      • 192 |
      193 |
    • 194 |
    • Model Training 195 |
        196 |
      • Linear Regression
      • 197 |
      • Decision Tree
      • 198 |
      • Ensemble Models
      • 199 |
      • Feedback and Deployment
      • 200 |
      201 |
    • 202 |
    203 |
  4. 204 |
  5. Train a Logistic Regression Model (HANDS ON Lab) 205 |
      206 |
    • Hands-on
    • 207 |
    • Loading the data and connecting to Cloud Object Storage
    • 208 |
    • Splitting the data, Feature Engineering and model fitment
    • 209 |
    210 |
  6. 211 |
  7. Model Evaluation and improvisation 212 |
      213 |
    • ROC Analysis
    • 214 |
    • Hyper-Parameter Optimization
    • 215 |
    216 |
  8. 217 |
  9. Exporting the Model as an API endpoint 218 |
      219 |
    • Python notebook based code demonstration
    • 220 |
    221 |
  10. 222 |
223 |

224 |
225 |
226 |
227 |
228 | 229 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | --------------------------------------------------------------------------------