Change 33688

Time Attribute with previous and current values
Change #33688
2015-04-11
01:22:12

create Calagator::Event 1250468220 RefreshPDX - Hello Web App: Learn How to Build a Web App with Python Django Roll back

description nil Join us for an afternoon workshop on 21 May 2015... Have you ever wanted to build something from scratch that other people could use? There are tons of tutorials and instructions for writing your first website using HTML and CSS, but building something that interacts with the user — a full, complete web application — might feel unachievable and out of reach. Not so! This workshop will walk you through creating a basic web app using Python and Django, from ideation to deployment. Set up your first web product with a database, registration and login forms, and perhaps get on the path to a fun side-project or future startup. Tailored for designers and non-programmers and taught by a designer. What We'll Cover Installation of Python Django, and deploying your local web app. Setting up static files and templates to make it look like a real website. Creating a database schema. Setting up registration, login, and password recovery pages. Deployment on Heroku (if time allows). Who Should AttendThis workshop is for those who are comfortable with HTML CSS and want to learn how to build a web app with Django. What You Should KnowExperience with HTML and CSS is highly recommended. Very basic knowledge of programming concepts encouraged (variables/loops/etc — easy resources will be given before the workshop). What to BringA laptop with your favorite text editor. If possible, a Mac or Linux system. What to Expect A half-day of workshop learning! Coffee, Tea, and Snacks are provided by Refresh Portland! A copy (digital or physical) of Tracy's new book for each attendee! Other things that warrant an exclamation mark! The workshop will begin at 1pm and end at 5pm. After the workshop is over, everyone who wants to join us will head to a nearby establishment for drink (alcoholic and non-alcoholic) on Refresh Portland. About Tracy OsbornTracy Osborn is a designer, developer, and entreprenerd living in the Bay Area of California. She's the author of Hello Web App, teaching beginner web app development. Building websites since she was twelve, she always felt an affinity to computers, the internet, and what it brings us. Tracy graduated with a BFA in Art Design with a concentration in Graphic Design from California Polytechnic State University, San Luis Obispo, and worked as a web designer for five years before teaching herself programming and launching her first startup, WeddingLovely. She's also an avid outdoorswoman and would love to go on a hike with you. Follow Tracy on Twitter. The Venue, IdealistThanks to Idealist for hosting us this month! Idealist is located at 209 SW Oak, Suite 101, Portland, OR, 97204. Come on in the front door and go straight back, then left to the meeting room. Have questions about RefreshPDX - Hello Web App: Learn How to Build a Web App with Python Django? Contact Matthew Oliphant Attendee List Sort by: Date | First Name No one has registered for this event yet. #sort_container { font-weight: normal; float:right; font-size: 14px; float:right; text-decoration:none; cursor: pointer;} #sort_option span { color: #bababa; } #sort_option .sort_active { font-weight: bold; } #track_event_container { display: none; } Save This Event Save This Event Log in or sign up for Eventbrite to save events you're interested in. Sign Up Already have an account? Log in Event Saved When Where Idealist 209 SW Oak Suite 101 Portland, OR 97204 Thursday, May 21, 2015 from 1:00 PM to 5:00 PM (PDT) Add to my calendar Outlook Calendar Google Calendar Yahoo! Calendar iCal Calendar Organizer Matthew Oliphant Contact the Organizer View organizer profile 1 upcoming event on Eventbrite 18 past events on Eventbrite Contact Organizer Your message has been sent! Your Name Email Address Message Enter the code as shown below: Your email will only be seen by the event organizer. Find out more about how your privacy is protected. Send message Please wait... Cancel Close Eventbrite Use Eventbrite for event ticketing and online event registration 2015 Eventbrite About Terms Privacy Help Center Cookie Policy Already registered? Get your tickets Questions? Contact the organizer Please log in or sign up In order to purchase these tickets in installments, you'll need an Eventbrite account. Log in or sign up for a free account to continue. Log in Sign up EB.init({ mediaUrl: 'https://ebmedia.eventbrite.com/s3-build/610-rc2015-04-08_12.04-e2d0d33/', ebServer: 'https://www.eventbrite.com', ebDomain: 'eventbrite.com', ebCurrentSchemeServer: 'https://www.eventbrite.com', ebQueueServer: 'https://www.eventbrite.com', url: "/e/refreshpdx\u002Dhello\u002Dweb\u002Dapp\u002Dlearn\u002Dhow\u002Dto\u002Dbuild\u002Da\u002Dweb\u002Dapp\u002Dwith\u002Dpython\u002Ddjango\u002Dtickets\u002D16513384979" }); if (EB.Analytics) { EB.Analytics.trackPendingInternalLink('MX'); } define('eb/require_app_config', { showRelatedEventsExpired: false, showRelatedEventsLive: true, correlationID: 'da1aa742e02311e489a822000b2901de', sessionID: 'WxNqZZKnTF0FAQ3-2Zs_nQ', bigEventID: '16513384979', EBUserID: null, FBAppID: '28218816837', isPublic: true, showSeatMap: false, hasCustomHeader: false, eventState: 30, organizerId: 760843, organizerName: "Matthew Oliphant", isRepeating: false, }); require(['mediatorjs'], function(mediatorjs) { mediatorjs.set('feedbackOptions', { /*jshint camelcase: false*/ el: '.js-feedback-form', learnMoreURL: 'http://help.eventbrite.com/customer/en_us/portal/articles/1933338', model: { event_id: "16513384979", user_id: "None", feedback_type: 'related_events_feedback' } }); }); if (require) {require.config({baseUrl: "https://ebmedia.eventbrite.com/s3-build/610-rc2015-04-08_12.04-e2d0d33/django/js/require_built",waitSeconds: 15});} else {window.require = {baseUrl: "https://ebmedia.eventbrite.com/s3-build/610-rc2015-04-08_12.04-e2d0d33/django/js/require_built",waitSeconds: 15};} defer> var sharedRouter = new EB.Backbone.Router(); require(['eb/apps/event_page/mixpanel/config'], function(Config) { Config.resolve({ 'Event ID': '16513384979', 'Is Public': true, 'Reserved Seating': false, ticketTypes: '', 'Organizer ID': 766168901, 'Event Type': 'Meeting or Networking Event', 'Event Topic': 'Other', Capacity: '', Quantity: '', 'Has Custom Header': false, 'Event State': 30, 'Repeating Event': false, 'Repeating V2 Event': false, 'Event Ticket Type':'Paid', 'Moflo' : false, Currency: 'USD' }); }); if (require) {require.config({baseUrl: "https://ebmedia.eventbrite.com/s3-build/610-rc2015-04-08_12.04-e2d0d33/django/js/require_built",waitSeconds: 15});} else {window.require = {baseUrl: "https://ebmedia.eventbrite.com/s3-build/610-rc2015-04-08_12.04-e2d0d33/django/js/require_built",waitSeconds: 15};} defer> (function($, EB) { if (!(jQuery.browser.msie jQuery.browser.version === '6.0')) { $.getScript('https://ebmedia.eventbrite.com/s3-build/610-rc2015-04-08_12.04-e2d0d33/django/js/production/event_tracking.js', function() { EB.Facebook.ready(function() { var eventTrackingRouter = new EB.EventTracking.Router({ FB: FB, ebServer: 'https://www.eventbrite.com', eventData: {"start_date_formatted":"May 21, 2015 1:00 PM PDT","start_date_month_short":"May","address_short":"209 SW Oak, Suite 101, Portland, OR","start_date_day_of_the_week":"Thu","id":16513384979,"categories":["Other","Meeting or Networking Event"],"category_name":"","name":"RefreshPDX - Hello Web App: Learn How to Build a Web App with Python \u0026 Django","url":"http://www.eventbrite.com/e/16513384979?aff=esv","start_date":1432238400000,"image_url":null,"repeats":false,"category_icon":""}, saveOnInit: EB.EventTracking.userClickedSave, useLocalStorage: false, fetchCount: true, locale: 'en_US', sharedRouter: sharedRouter, }); EB.EventTracking.Analytics.init( eventTrackingRouter, { 'eventId': 16463993, 'internalReferrer': '7' } ); if (window.location.hash === '#view_list') { Backbone.history.navigate('', { trigger: true }); } else { eventTrackingRouter.index(); } }); }); } })(window.jQuery, window.EB); (function($, EB) { if (!(jQuery.browser.msie jQuery.browser.version === '6.0')) { EB.namespace('EventTracking'); EB.EventTracking.userClickedSave = false; $('#track_event').click(function(e) { e.preventDefault(); EB.EventTracking.userClickedSave = true; }); } })(window.jQuery, window.EB); if (Backbone.history !Backbone.History.started) { Backbone.history.start(); } require(['mediatorjs'], function(mediator) { 'use strict'; var googleMapConfig = { 'language' : 'en' }; mediator.set('googleMapConfig', googleMapConfig); }); if (require) {require.config({baseUrl: "https://ebmedia.eventbrite.com/s3-build/610-rc2015-04-08_12.04-e2d0d33/django/js/require_built",waitSeconds: 15});} else {window.require = {baseUrl: "https://ebmedia.eventbrite.com/s3-build/610-rc2015-04-08_12.04-e2d0d33/django/js/require_built",waitSeconds: 15};} defer> require(['jquery', 'mediatorjs'], function($, mediatorjs) { var AuthAppConfig = { el: $('#authentication-container'), initialAuthAction: 'login', locale: "en_US", isPreRendered: false, userAttributes: {"passwd":"","remember_me":true,"forward":"","email":"","referrer":""}, recaptchaPublicKey: "6LfbZr8SAAAAAKlolhfFS6RTWGhnjaGawWtkZkhP", initialErrors: {}, referrer: "", forward: "", skipSplash: "", skipStart: false, enableAuthModal: true, csrfToken: 'ln5RN09qfSdSFdkyPJJDJQ3aPaQ0hsDF', signupPage: "", userType: "", userTypeSig: "" }; mediatorjs.set('AuthAppConfig', AuthAppConfig); }); EB.Facebook.init({ appId: '28218816837', locale: 'en_US', scope: 'email,friends_location', internalReferrer: 3 }); new EB.EventPage.HeaderView({ el: '#global-header', subtargets: 'header, .major', createdDate: '2015-04-09 01:26:25', allowHiddenHeader: false }); EB.legacyEventsGATracker = { config: { actionAttribute: 'data-tracking-action', labelAttribute: 'data-tracking-label', classes: { linkSelector: 'js-event-track' } }, defaultAttributes: { 'category': 'listing', 'dimensions': [ EB.Analytics.DIMENSIONS.EVENT_ID('16513384979'), EB.Analytics.DIMENSIONS.EXPERIMENT_ID('OldListing') ] }, defaultOrganizerAttributes: { 'label': 'Matthew Oliphant' }, addEvents: function() { $(document).on('click', '.' + this.config.classes.linkSelector, $.proxy(this.handleTrackedLink, this)); }, extractDataAttribute: function(attr, el){ var dataAttr = $(el).closest('.' + this.config.classes.linkSelector).attr(this.config[attr + 'Attribute']); if(typeof dataAttr === "string") { return dataAttr; } else { return false; } }, actionsLookUpTable: { ViewOrgUpcomingEvents: 'getOrgEventAttr', ContactOrgAttempt: 'getOrgEventAttr', ViewOrgPastEvents: 'getOrgEventAttr', ContactOrgCancel: 'getOrgEventAttr', ViewOrgWebsite: 'getOrgEventAttr', ViewOrgProfile: 'getOrgEventAttr', ViewOrgTwitter: 'getOrgEventAttr', ContactOrgSend: 'getOrgEventAttr', FbConnect: 'getFBConnectAttr', ViewOrgFb: 'getOrgEventAttr', Share: 'getShareAttr' }, init: function() { this.addEvents(); }, track: function(attributes) { if(attributes){ EB.Analytics.trackEvent(attributes); } }, handleTrackedLink: function(e){ this.callEvent(e.target); }, callEvent: function(el){ var action = this.extractDataAttribute('action', el), label = this.extractDataAttribute('label', el), attributeMethod = this.actionsLookUpTable[action], attributes = {}; if(attributeMethod){ attributes = this[attributeMethod](action, label); } this.track(attributes); }, getFBConnectAttr: function(action) { return $.extend({}, this.defaultAttributes, {'action': action}); }, getOrgEventAttr: function(action) { return $.extend({}, this.defaultAttributes, this.defaultOrganizerAttributes, {'action': action}); }, getShareAttr: function(action, label) { return $.extend({}, this.defaultAttributes, this.defaultOrganizerAttributes, {'action': action, 'label': label}); } }; jQuery(function($){ EB.legacyEventsGATracker.init(); }); function handleLinkedinClick(){ EB.Social.linkedInPopup({ 'url': $(this).attr('href') }); } function handleTwitterClick(){ EB.Social.twitterPopup({ 'url': $(this).attr('href') }); } $('#social_module') .on('click', '.linkedin_button', handleLinkedinClick) .on('click', '.tweet_button', handleTwitterClick); EB.Registration.init({ recaptcha_lang: 'en', use_mfp: true, qdata: {err: 'None'} }); updateCheckout(); updateTracking(); EB.featureFlags = { orderNowLock: true }; EB.GoogleMap.init({ lat: '45.5209202', lon: '-122.67331339999998', zoom: '13', language: 'en-us', scheme: 'https://' }); // (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.defer = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); var _gaq = _gaq || []; // (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-141520-1', {'userId': 'de57256e_aa4495bfa57adf28271d9a1f8781fb9aed54554b6e77043f17109a8c34dc907162822615bb5dce3fc68a295f4999b2b2'}, {'allowLinker': true}); ga('set', 'forceSSL', true); // We want to track some custom dimensions on the event pages // For that, we first check if we are in an event page if (typeof(require) != 'undefined') { require(['mediatorjs', 'underscore', 'eb/analytics'], function(mediatorjs, _, Analytics) { var isEvent = document.location.pathname.match('^/e\//*'), isNewListing, public_id, dimensions = {}; Analytics.setInternalUseGACookie(); Analytics.trackPendingInternalLink('ebEventToTrack'); dimensions['dimension14'] = 'de57256e_aa4495bfa57adf28271d9a1f8781fb9aed54554b6e77043f17109a8c34dc907162822615bb5dce3fc68a295f4999b2b2'; // TODO: move these dimensions to the event pages instead of checking on every page. if(isEvent){ public_id = 16513384979 isNewListing = $('body').hasClass('js-listing-page'); dimensions.dimension12 = public_id; dimensions.dimension21 = isNewListing ? "NewListing" : "OldListing"; } if (mediatorjs.get('GAPageviewDimensions')) { dimensions = _.extend(dimensions, mediatorjs.get('GAPageviewDimensions')); } Analytics.trackPageView(dimensions); }); } else { // This is a temporary measure to tell whether or not require is ever failing. // If this doesn't get hit, remove this if/else check ga('send', 'pageview'); ga('send', { 'hitType': 'event', 'eventCategory': 'error', 'eventAction': 'require error', 'eventLabel': 'require not loaded at pageview time' }); } if (!!window.EB) { EB.Analytics.init('de57256e_aa4495bfa57adf28271d9a1f8781fb9aed54554b6e77043f17109a8c34dc907162822615bb5dce3fc68a295f4999b2b2'); } var gaEventName = 'RefreshPDX \u002D Hello Web App: Learn How to Build a Web App with Python \u0026amp\u003B Django'; var gaPagename = gaEventName; adroll_adv_id = "HB24VVXCLVCZ5JYSJKZ6OC"; adroll_pix_id = "OLYYNVG2WJETJN24OFPJMG"; (function () { var oldonload = window.onload; window.onload = function(){ __adroll_loaded=true; var scr = document.createElement("script"); var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com"); scr.setAttribute('async', 'true'); scr.type = "text/javascript"; scr.src = host + "/j/roundtrip.js"; ((document.getElementsByTagName('head') || [null])[0] || document.getElementsByTagName('script')[0].parentNode).appendChild(scr); if(oldonload){oldonload()}}; }()); window.EB = window.EB || {}; EB.TagManager = { load: function(serviceName, domData) { var url = '?event_id=16513384979path=%2Fe%2Frefreshpdx-hello-web-app-learn-how-to-build-a-web-app-with-python-django-tickets-16513384979organizer_uid=1099394#%7B%22debugging%22%3A%22off%22%2C%22site_region%22%3A%22en_US%22%2C%22event_id%22%3A%2216513384979%22%2C%22tealium_eb_partner_id%22%3A%22e658177f_5ac36fb8ad9af11a1f9e3df9f652f16ced5d40fbe2a3363f6d8cbc00cc15c0349ce3e45ddc537f273077d83c0a79166d%22%2C%22ensighten_eb_partner_id%22%3A%2261c35aa1_da8806b7b52873a41e0fb1a89ed8bcadba7926a0cfabda88623ad4f4bcfb25597db750ee08f0fee7696fc56f721eb5a0%22%2C%22environment%22%3A%22prod%22%2C%22event_name%22%3A%22RefreshPDX%20-%20Hello%20Web%20App%3A%20Learn%20How%20to%20Build%20a%20Web%20App%20with%20Python%20%5Cu0026amp%3B%20Django%22%2C%22page_ref%22%3A%22event%22%2C%22organizer_id%22%3A%22766168901%22%2C%22url_path%22%3A%22/e/refreshpdx-hello-web-app-learn-how-to-build-a-web-app-with-python-django-tickets-16513384979%22%2C%22organizer_uid%22%3A%221099394%22%7D', iframe = document.createElement('iframe'); url = this.getCookies(url); // add cookies to url if (domData){ url = this.addDomData(url, domData); // add extra domData to url } iframe.style.cssText = 'width:1px; height:1px; position: absolute; left:-99999px; border:none;'; iframe.sandbox = 'allow-same-origin allow-scripts allow-forms'; iframe.id = 'eb-tag-manager-' + serviceName; iframe.src = '//eventbrite-pixels.s3.amazonaws.com/tag_manager/' + serviceName + '.html' + url; document.body.appendChild(iframe); }, addDomData: function(url, domData){ var domDataStr = JSON.stringify(domData); var updatedDomData = encodeURIComponent(domDataStr); return url.substring(0, url.length - 3) + '%2C' + updatedDomData.substring(3, updatedDomData.length); }, getCookies: function(url){ var cookieHash = this.removeBlackListCookies(); return this.addDomData(url, {'cookieHash': cookieHash }); }, cookieCutter: function(key, cookieStr){ // match the cookie key value using just the key // if cookieStr was 'testKey1=testValue1; testKey2=testValue2; testKey3=testValue3;' // and key was 'testKey2' // lookup would return 'testKey2=testValue2;' var regEx = new RegExp("(?:(?:^|.*;)\\s*(" + key + ")(\\s*\\=\\s*)([^\\s*]*).*$)|^.*$"); var lookup = cookieStr.replace(regEx, "$1$2$3"); return cookieStr.replace(lookup,''); }, removeBlackListCookies: function(){ var blackList = ['csrftoken', 'experiments_enrolled', 'ebGAClientId', 'janus', 'G'], cookieStr = document.cookie; for (var i = 0; i blackList.length; i++) { cookieStr = this.cookieCutter(blackList[i], cookieStr); } // remove white space before return becasue it is better for trasportation return cookieStr.replace(/; +(?=)/g,';'); } }; $(function() { EB.TagManager.load('ensighten', false); });
id nil 1250468220
source_id nil 996335316
start_time nil 2015-05-21 13:00:00 -0700
title nil RefreshPDX - Hello Web App: Learn How to Build a Web App with Python Django
url nil http://www.eventbrite.com/o/matthew-oliphant-766168901?s=36584979
venue_id nil 202394917