GithubHelp home page GithubHelp logo

it-cfp-list's Introduction

IT conferences Call For Papers list

Please file Pull Requests for missing conferences. Commits from this repo automatically lands on @ItCfpList and in public Google Calendar.

Please keep commits names consistent with schema: <Conference name> (@TwitterHandle #TwitterTag) - <yyyy.mm.dd-dd> - <City>, <Country>.

List sorted by CFP end date descending (oldest and probably already finished last).

CFP end Conference Date City, Country Name CFP Link Keywords
2020.07.15 2020.10.08-09 Budapest, Hungary Hacktivity 2020 here Computer Security, Cyber Security, Hacking, IoT
2020.05.31 2020.10.12-13 Prague, Czech Republic ReactiveConf 2020 here JavaScript, Software Development, Frontend, Design, Meta, Web
2020.05.10 2020.08.28-29 Kraków, Poland dynamIT 2020 here Programming, soft skills
2020.04.17 2020.09.09-10 Oslo, Norway JavaZone 2020 here Java, JVM, Languages, Software Architecture, Frontend, Web, DevOps, AI/Machine Learning, Data Engineering, Cloud, Cloud-native, Kubernetes, Microservices, Security, Agile, Digitalisation
2020.05.06 2020.09.07-09 Barcelona, Spain JBCNConf 2020 here Java, JVM languages (Kotlin, Scala, Clojure, etc), Android, Cloud, Kubernetes, Microservices, Docker, Testing, TDD, DDD, CI, CD, Functional Programming
2020.04.11 2020.06.17 Paris, France DataXDay 2020 here Data Engineering, ML, AI, Data Architecture, Data Security, Craftsmanship, Streaming Data
2020.03.31 2020.05.30 Zielona Góra, Poland GreenfieldConf 2020 here Craftsmanship, Versatile
2020.03.20 2020.09.24-25 Madrid, Spain Codemotion Madrid 2020 here JavaScript, Frontend,Design UX/UI, Languages, Game Dev, Mobile, Software Architectures, Java, DevOps, Cloud, Kubernetes, Microservices, Cybersecurity, Rust, Quantum, Blockchain, Voice & Digital Assistants, AI/Machine Learning, IoT, AR/XR/MR, Diversity & Inclusion, Inspirational, IT Careers, Agile, Ethics, Green Tech
2020.03.17 2020.06.08 Amsterdam, Netherlands HashiConf EU here Infrastructure-as-Code, Cloud Operating Model, Cloud-native
2020.02.29 2020.06.05 Amsterdam, Netherlands JSNation 2020 here JavaScript, TypeScript, Front-end
2020.02.29 2020.05.11 Karlsruhe, Germany Sencha Community Days 2020 here ExtJS, Sencha, JavaScript, Web
2020.02.28 2020.05.13-15 Kraków, Poland GeeCON here Java, JVM, architecture, craftsmanship, mobile
2020.02.23 2020.05.14-15 Barcelona, Spain Spring I/O here Spring Framework, Spring Boot, JVM, Cloud, Microservices, Web, Reactive, Kotlin...
2020.02.15 2020.06.02-04 Copenhagen, Denmark GR8Conf and JDK IO here Java & Groovy, Microservices, Web, Big Data, Architecture, Cloud, ...
2020.02.14 2020.06.17-19 Kraków, Poland Devoxx Poland here Java, Web, Big Data, Architecture, ...
2020.01.31 2020.04.17 Amsterdam, Netherlands React Summit Amsterdam 2020 here React, React Native, GraphQL
2020.01.13 2020.03.26 Newcastle Upon Tyne, UK Build IT Right 2020 here Software Development, Architecture, Agile
2020.01.20 2020.03.26 Budapest, Hungary BSides Budapest 2020 here Computer Security, Cyber Security, Hacking, IoT

Previous and finished CFPs can be found here.

it-cfp-list's People

Contributors

adamw avatar bloged avatar deindre avatar dekramobile avatar devwiththehair avatar eliw avatar idabzo avatar ihabunek avatar it-cfp-list avatar jthomas avatar kathrynn avatar kciesielski avatar kropp avatar lutzh avatar magdzikk avatar martijnhazebroek avatar mikesperber avatar mmatloka avatar mpociecha avatar notherdev avatar ntcoding avatar ondromih avatar pawelklimczyk avatar piecioshka avatar rucek avatar salmar avatar snemes avatar ssuperczynski avatar szpak avatar tague avatar

Stargazers

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

Watchers

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

it-cfp-list's Issues

Google Script to Sync with Calendar

I wrote a little Google script that creates a cfp calendar from your list. To try it, go to drive.google.com, click New -> Google Apps Script, copy the code into the editor, select syncCfpCalendar as the function to be executed and click the play button. Reload calendar.google.com and you should see a new cfp calendar. Google also provides triggers so you can run this nightly (click Edit -> Current Project's Triggers).

If you think this is useful, feel free to publish it, put it in a readme, provide a public calendar, whatever you want.

var sources = [
  {
    rawUrl: 'https://raw.githubusercontent.com/softwaremill/it-cfp-list/master/README.md',
    link: 'https://github.com/softwaremill/it-cfp-list'
  }
]

// name of the calendar to be updated / created.
var calendarName = 'cfp';

// All calendar events are tagged, so we don't accidentally delete unrelated events.
var tag = {
  key: 'generated-by',
  value: 'cfp-calendar-sync'
};

// main function
function syncCfpCalendar() {
  var cal = openCalendar();
  for each (source in sources) {
    var markdownContent = loadMarkdownContent(source.rawUrl);
    processMarkdownContent(markdownContent, source.link, cal);
  }
}

function loadMarkdownContent(url) {
  var response = UrlFetchApp.fetch(sources[0].rawUrl);
  if (response.getResponseCode() != 200) {
    throw new Error("Got HTTP " + response.getResponseCode() + " when fetching " + cfpListUrl);
  }
  return response.getContentText();
}

function processMarkdownContent(markdownContent, link, cal) {
  var tableStart = false
  for each (line in markdownContent.split(/\r?\n/)) {
    if (!tableStart) {
      if (line.match(/\|-+\|-+\|-+\|-+\|-+\|-+\|/)) {
        tableStart = true;
      }
    } else {
      if (!startsWith(line, "|")) {
        return; // end of table
      }
      processTableLine(line, link, cal)
    }
  }
}

function processTableLine(line, link, cal) {
  if (!line.match(/\|.*\|.*\|.*\|.*\|.*\|.*\|/)) {
    Logger.log("skipping line " + line)
  }
  line = line.substring(1, line.length-1); // strip "|" from the beginning and end.
  fields = line.split("|")
  var cfpStart = startDate(fields[0].trim());
  var cfpEnd = endDate(fields[0].trim());
  var confStart = startDate(fields[1].trim());
  var confEnd = endDate(fields[1].trim());
  var location = fields[2].trim();
  var name = stripLink(fields[3].trim());
  var keywords = fields[5].trim();
  if (cfpStart && cfpEnd && cfpStart <= cfpEnd) {
    createEvent('CFP ' + name, cfpStart, cfpEnd, keywords, location, link, cal)
  }
  if (confStart && confEnd && confStart <= confEnd) {
    createEvent(name, confStart, confEnd, keywords, location, link, cal)
  }
}

function createEvent(name, start, endInclusive, keywords, location, link, cal) {
  // end date is exclusive, so add 1 day
  var evt = cal.createAllDayEvent(name, start, addDays(endInclusive, 1), {description: keywords + ', see ' + link, location: location});
  evt.setTag(tag.key, tag.value);
}

function startDate(dateString) {
  // Date formats used in the CFP List:
  // 2018.12.08
  // 2018.11.27-29
  // 2018.11.30-12.01
  // For the start date, we can ignore stuff following the '-' character.
  match = dateString.match(/^([0-9]{4})\.([0-9]{2})\.([0-9]{2})(-.*)?$/)
  if (match) {
    return dateFromCaptureGroups(match, 1, 2, 3);
  }
}

function endDate(dateString) {
  // Date formats used in the CFP List:
  // 2018.12.08
  // 2018.11.27-29
  // 2018.11.30-12.01
  match = dateString.match(/^([0-9]{4})\.([0-9]{2})\.([0-9]{2})$/)
  if (match) {
    return dateFromCaptureGroups(match, 1, 2, 3);
  }
  match = dateString.match(/^([0-9]{4})\.([0-9]{2})\.([0-9]{2})-([0-9]{2})$/)
  if (match) {
    return dateFromCaptureGroups(match, 1, 2, 4);
  }
  match = dateString.match(/^([0-9]{4})\.([0-9]{2})\.([0-9]{2})-([0-9]{2})\.([0-9]{2})$/)
  if (match) {
    return dateFromCaptureGroups(match, 1, 4, 5);
  }
}

function dateFromCaptureGroups(match, yearIndex, monthIndex, dayIndex) {
  return new Date(parseInt(match[yearIndex], 10), parseInt(match[monthIndex], 10) - 1, dayInt = parseInt(match[dayIndex], 10));
}

function stripLink(markdownString) {
  // "[devoxx](https://devoxx.be)" -> "devoxx" 
  return markdownString.replace(/\[([^\]]+)\]\([^)]+\)/, '$1')
}

function startsWith(s, c) {
  return s.indexOf(c) == 0;
}

function addYears(date, years) {
  var result = new Date(date);
  result.setFullYear(date.getFullYear()+years);
  return result;
}

function subtractYears(date, years) {
  return addYears(date, 0-years);
}

function addDays(date, days) {
  var result = new Date(date);
  result.setDate(result.getDate() + days);
  return result;
}

function openCalendar() {
  var calendars = CalendarApp.getCalendarsByName(calendarName);
  switch (calendars.length) {
    case 0:
      // not found. create a new calendar.
      return CalendarApp.createCalendar(calendarName, {summary: 'CFP calendar generated from ...'});
    case 1:
      // found. clear existing events, because events will be re-created
      var today = new Date(),
          twoYearsAgo = subtractYears(today, 2), // API requires a time range for getEvents. take a 4 year time range so we get all events.
          twoYearsFromNow = addYears(today, 2),
          events = calendars[0].getEvents(twoYearsAgo, twoYearsFromNow);
      for (var i = 0; i < events.length; i++) {
        if (events[i].getTag(tag.key) === tag.value) {
          events[i].deleteEvent()
        }
      }
      return calendars[0]
    default:
      throw new Error('found ' + calendars.length + ' calendars with name ' + calendarName + '.');
  }
}

Thank You 🎉

I just wanted to say a HUGE THANK YOU 🎉 to all the contributors of this repository. I've personally learnt about lot of conferences happening across the world, and it's been a good learning so far. Thank you again.

Clarify Finished header

I wanted to make PR that would move outdated entries under "Finished" header, but I am not 100% sure - is it about finished CfP or Finished conferences?

Add Oracle CodeOne 2019

Hello,

I would like to add Oracle CodeOne 2019 to the list, but I am not yet authorized to push to this repository and create a pull request for it. Is this correct and if so, could you please grant me access?

Kind regards,

Edwin Derks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.