InforMedia Services (IMS)

Technology Instruction for St. Cloud State University

Archive for the 'information technology' Category

Posted by Plamen Miltenoff on 16th April 2015

A new LITA webinar focused on Youth Programs:

Technology and Youth Services Programs: Early Literacy Apps and More

Tuesday May 20, 2015
1:00 pm – 2:00 pm Central Time
Register now for this webinar

A brand new LITA Webinar on youth and technology.

In this digital age it has become increasingly important for libraries to infuse technology into their programs and services. Youth services librarians are faced with many technology routes to consider and app options to evaluate and explore. Join Claire Moore from the Darien Public Library to discuss innovative and effective ways the library can create opportunities for children, parents and caregivers to explore new technologies.

Claire Moore

Posted in announcement, Digital literacy, information technology, instructional technology, Library and information science, technology literacy | No Comments »

IPython notebook

Posted by Plamen Miltenoff on 11th April 2015

Library Juice Academy

course_intro

I also encourage students to download and install Python on their own systems. Python is a
mature and robust language with a great many third party distributions and versions, such as Ipython.
One I recommend is Active State Python. Active State produces refined and well supported
distributions with easy to use installers. Their basic, individual distribution is free. You can find it at
http://www.activestate.com/activepython/downloads
  • Integers: A signed or unsigned whole number running from -32,768 to 32,768 or from 0 to 65,535 if not signed. Integers are used anytime something needs to be counted.
  • Long Integer: Any whole number outside the above range. Python doesn’t distinguish between the two though many languages do. Practically, Python’s integers range from −2,147,483,648 to 2,147,483,648 or 0 to 0 to 4,294,967,295. Most of us will be very happy with this many whole numbers to choose from.
  • Real and Floating Point Numbers: Real numbers are signed or unsigned numbers including decimals. The numbers 2,3,4 are Integers and Real Numbers. The numbers 2.1, 2.9,3.9 are Real Numbers, but not Integers. Real Numbers can include representations of irrational numbers such as pi. Real numbers must be rational, that is a decimal number that terminates after a finite number of decimals. You will sometimes encounter the term Floating Point Numbers. This is a technical term referring to the way that large Real Numbers are represented in a computer. Python hides this detail from you so Real and Floating Point are used intercangeably in this language.
  • Binary Numbers: And Octal and Hexadecimal. These are numbers used internally by computers. You will run into these values fairly often. For instance, when you see color values in HTML such as “FFFFFF” or “0000FF”,
Hexadecimal and Octal are used because humans can read them without too much trouble and they are compromise between what computers process and what we can read. Any time you see something in Octal or Hexadecimal, you are looking at something that interfaces with the lower levels of a computer. You will most commonly use Hexadecimal numbers when dealing with Unicode character encodings. Python will interpret any number which begins with a leading zero as binary unless formatting commands have been used.
Numbers such as 7i are referred to as complex. They have a real part, the 7, and an imaginary part, i. Chance are you won’t use complex numbers unless you’re working with scientific data.
A String consists of a sequence of characters. The term String refers to how this data type is represented internally. You store text in Strings. Text can by anything, letters, words, sentences, paragraphs, numbers, just about anything.
Lists are close cousins to Strings, though you may never need to think of them that way. A list is just that, a list of things. Lists may contain any number of numbers or any number of strings. List may even contain any number of other lists. Lists are compared to arrays, but they are not the same thing. In most uses, the function the same so the difference, for our purposes, is moot. Strings are like lists in that, internally, the computer works with strings in an identical manner to lists. This is why the operations on Strings are so different from numbers.
The last main data type in the Python programming language is the dictionary. Dictionaries are map types, known in other languages as hashes, and in computer science as Associative Arrays. The best way to think of what the dictionary does is to consider a Library of Congress Call Number(something this audience is familiar with). The call number is what’s called a Key. It connects to a record which contains information about a book. The combination of keys and records, called values, comprises a dictionary. A single key will connect to a discrete group of values such as the items in this record. Dictionaries will be touched on in the next lesson in some detail in the next course. These are fairly advanced data structures and require a solid understanding a programming fundamentals in order to be used properly.

Statements, an Overview

Programs consist of statements. A statement is a unit of executable code. Think of a statement like a sentence. In a nutshell, statements are how you do things in a program. Writing a program consists of breaking down a problem you want to solve into smaller pieces that you can represent as mathematical propositions and then solve. The statement is where this process gets played out. Statements themselves consist of some number of expressions involving data. Let’s see how this works.

An expression would be something like 2+2=4. This expression, however is not a complete statements. Ask Python to evaluate it and you will get the error “SyntaxError: can’t assign to operator”. What’s going on here? Basically we didn’t provide a complete statement. If we want to see the sum of 2+2 we have to write a complete statement that tells the interpreter what to do and what to do it with. The verb here is ‘print’ and the object is ‘2+2′. Ask Python to evaluate ‘print 2+2′ and it will show ‘4’. We could also throw in subject and do something a bit more detailed: ‘Sum=2+2′. In this case we are assigning the value of 2+2 to the variable, Sum. We can then do all sorts of things with Sum. We can print it. We can add other numbers to it, hand it off to a function and so on. For instance, might want to know the root of Sum. In which case we might write something like ‘print sqrt(sum)’ which will display ‘2’.

A shell is essentially a user interface that provides you access to a system’s features. Normally, this means access to an Operating System. In cases like this, the shell provides you access to the Python programming environment.

Anything preceed by a “#” is not interpreted or executed by the programming shell. Comments are used widely to document programs. One school of programming holds that code should be so clear that comments are uncessary.

Operations on Numbers

Expressions are discrete statements in programming that do something. They typically occupy one line of code, though programmers will sometimes squeeze more in. This is generally bad form and can really make your program a mess. Expressions consist of operations and data or rather data and operations on them. So, what can you do with numbers? Here is a concise list of the basic operations for integers and real numbers of all types:

Arithemetic:

  • Addition: z= x + y
  • Subtraction: z = x – y
  • Multiplication: z = x * y. Here the asterisk serves as the ‘X’ multiplication symbol from grade school.
  • Division: z = x/y. Division.
  • Exponents: z = x ** y or xy, x to the y power.

Operations have an order of precedence which follows the algebraic order of precedence. The order can be remembered by the old Algebra mnenomic, Please Excuse My Dear Aunt Sally which is remeinds you that the order of operations is:

  1. Parentheses
  2. Exponents
  3. Multiplication
  4. Division
  5. Addition
  6. Subtraction

Operations on Strings

Strings are strange creatures as I’ve noted before. They have their own operations and the arithmetic operations you saw earlier don’t behave the same way with strings.

Putting Expressions Together to Make Statements

As I noted earlier, all computer languages, and natural languages, possess pragmatics, larger scale structures which reduce ambiguity by providing context. This is a fancy way of saying just as sentences posses rules of syntax to make able to be comprehended, larger documents have similar rules. Computer Programs are no different. Here’s a break down of the structure of programs in Python, in a general sense.

  1. Programs consist of one or more modules.
  2. Modules consist of one or more statements.
  3. Statements consist of one or more expressions.
  4. Expressions create and/or manipulate objects(and variables of all kinds).

Modules and Programs are for the next class in the series, though we will survey these larger structures next lesson. For now, we’ll focus on statements and expressions. Actually, we’ve already started with expressions above. In Python, statements can do three things.

  • Assign a variable
  • Change a variable
  • Take an action

Variable Names and Reserved Words

Now that we’ve seen some variable assignments, let’s talk about best practices. First off, aside from reserved words, variable names can be almost any combination of letters, numbers and punctuation marks. You, however, should never ever, use the following punctuation marks in variable names:

      • +
      • -
      • !
      • @
      • ^
      • %
      • (
      • )
      • .
      • ?
      • /
      • :
      • ;

*

These punctuation marks tends to be operators and characters that have special meanings in most computer languages. The other issue is reserved words. What are “reserved words”? They are words that Python interprets as commands. Pythons reservers the following words.:

  • True: A special value set aside for boolean values
  • False: The other special value set aside for boolean vaules
  • None: The logical equivalent of 0
  • and: a way of combining logical conditions
  • as: describes how modules are imported
  • assert: a way of forcing something to take on a certain value. Used in debugging of large programs
  • break: breaks out of a loop and goes on with the rest of the program
  • class: declares a class for object oriented design. For now, just remember not to use this variable name
  • continue: returns to the top of the loop and keeps on going again
  • def: declares functions which allow you to modularize your code.
  • elif: else if, a cotnrol structure we’ll see next lesson
  • else: as above
  • except: another control structure
  • finally: a loop control structure
  • for: a loop control structure
  • from: used to import modules
  • global: a scoping statement
  • if: a control structure/li>
  • in: used in for each loops
  • is: a logical operator
  • lamda: like def, but weird. It defines a function in a single line. I will not teach this becuase it is icky. If you ever learn Perl you will see this sort of thing a lot and you will hate it, but that’s just my personal opinion.
  • nonlocal: a scoping command
  • not: a logical operator
  • or: another logical operator
  • pass: does nothing. Used as placeholder
  • raise: raises an error. This is used to write custom error messages. Your programs may have conditions which would be considered invalid based on our business situation. The interpreter may not consider them errors, but you might not want your user to do something so you ‘raise’ an exception and stop the program.
  • return: tells a function to return a value
  • try: this is part of an error testing statement
  • while: starts a while loop
  • with: a context manager. This will be covered in the course after the next one in this series
  • yield: works like return
Variable names should be meaningful. Let’s say I have to track a person’s driver license number. explanatory names like ‘driverLicenseNumber’.

  • Use case to make your variable names readable. Python is case sensitive, meaning a variable named ‘cat’ is different from named ‘Cat’. If you use more than one word to name variable, start of lower case the change case on the second word. For instance “bigCats = [‘Tiger’,’Lion’,’Cougar’, ‘Desmond’]”. The common practice used by programmers in many settings is that variables start with lowercase and functions(methods and so on) start with upper case. This is called “Camel Case” for its lumpy, the humpy appearance. Now, as it happens, there is something of a religious debate over this. Many Python programmers prefer to keep everything lower case and join words in a name by underscores such as “big_cats”. Use whichever is easiest or looks the nicest to you.
  • Variable names should be unique. Do not reuse names. This will cause confusion later on.
  • Python conventions. Python, as with any other programming language, has culture built up around it. That means there are some conventions surrounding variable naming. Two leading underscores, __X, denote system variables which have special meaning to the interpreter. So avoid using this for your own variables. There may be a time and place, but that’s for an advanced prorgramming course. A single underscore _X indicates to other programmers that this a fundamental variable and that they mess with it at their own peril.
  • Avoid starting variable names with a number. This may or may not return an error. It can also mislead anyone reading your program.
  • “A foolish consistency is the hobgoblin of little minds”. But not to programming minds. Consistency helps the readability of code a great deal. Once you start a system, stick with it.

Statement Syntax

Putting together valid statements can be a little hard at first. There’s a grammar to them. Thus far, we’ve mainly been workign with expressions such as “x = x+1″. You can think of expression as nouns. We’ve clearly defined x, but how do we look inside? For that we need to give it a verb, the print command. We would then write “print x”. However we can skip the middle statement and print an expression such as “print x + 1″. The interpreter evaluates this per the order of operations I laid out earlier. However, once that expression is evaluated, it then applies the verb, “print”, to that expression.

Print is a function that comes with the Python distribution. There are many more and you can create your own. We’ll cover that a bit in next lesson. Let’s look at little more at the grammar of a statement. Consider:

x = sin(b)

Assume that b has been defined elsewhere. x is the subject, b is the object and sin is the verb. Python will go to the right side of the equal sign first. It will then go to the inside of the function and evaluate what’s there first. It then evaluates the value of the function and finishes by setting x to that value. What about something like this?

x=sin(x+3/y)

Python evaluates from the inside out according to the rules of operation. Very complex statements can be built up this way.

x = sin(log((x + 3)/(e**2)))
Regardless of what this expression evaluates to (I don’t actually know), Python starts with the innermost parentheses, then works through the value of e squared then adds 3 to x and divides the result by e squared. With that worked out, it takes the logarithm of the result and takessthe sine of that before setting x to the final result.What you cannot do is execute more than one statement on a line. No more than one verb on a line. In this context, a verb is an assignment, or a command acting on an expression
markdown cell
code cell

Call up your copy of Think Python or go to the website at http://www.greenteapress.com/thinkpython/html/. Read Chapter 2. This will reiterate much of what I’ve presnted here, but this will help cement the content into you minds. Skip section 2.6 because IPython treats everything as script mode. IPyton provides you with the illusion of interactive, but everything happens asynchronously. This means that any action you type in will not instantaneously resolve as it would if you were running Python interactively on your computer. You will have to use print statements to see the results of your work.

Your assignment consists of the following:

  • Exercise 1 from Chapter 2 of Think Python. If you type an integer with a leading zero, you might get a confusing error:
    <<< zipcode = 02492

    SyntaxError: invalid token
    Other numbers seem to work, but the results are bizarre:
    <<< zipcode = 02132
    <<< zipcode
    1114
    Can you figure out what is going on? Hint: display the values 01, 010, 0100 and 01000.

  • Exercise 3 from Chapter 2 of Think Python.Assume that we execute the following assignment statements:
    width = 17
    height = 12.0
    delimiter = ‘.’
    For each of the following expressions, write the value of the expression and the type (of the value of the expression).

    width/2
    width/2.0
    height/3
    1 + 2 5
    delimiter
    5

  • Exercise 4 from Capter 2 of Think Python. Practice using the Python interpreter as a calculator:
    1. The volume of a sphere with radius r is 4/3 π r3. What is the volume of a sphere with radius 5? Hint: 392.7 is wrong!
    2. Suppose the cover price of a book is $24.95, but bookstores get a 40% discount. Shipping costs $3 for the first copy and 75 cents for each additional copy. What is the total wholesale cost for 60 copies?
    3/ If I leave my house at 6:52 am and run 1 mile at an easy pace (8:15 per mile), then 3 miles at tempo (7:12 per mile) and 1 mile at easy pace again, what time do I get home for breakfast?

In your IPython notebook Create a markdown cell and write up your exercise in there. Just copy it from the textbook or from the above write up. Next ceate a code cell and do your work in there. Please, comment your work thoroughly. You cannot provide too many comments. Use print statements to see the outcome of your work.

Posted in information technology | No Comments »

Internet connection at SCSU

Posted by Plamen Miltenoff on 1st April 2015

802.11AC

http://en.wikipedia.org/wiki/IEEE_802.11ac

The Answer to Meeting Challenging Wireless Needs on Campus: 802.11AC

Campus Technology Whitepaper

Dear Plamen,

In the mobile era we live in, your students expect more from their institution’s wireless capabilities.

In this informative whitepaper, you’ll learn how deploying the first wireless standard (802.11 AC) where the speed of wireless is faster than a wired connection can empower your institution to meet the growing, technology driven landscape of today’s higher education environment.

My Note: Campuses are gearing up to the challenges of the Millennials and Gen Z. So do, allegedly, the SCSU IT. BOYD is now a term, which (finally, after 3 years of IMS proposing it to CETL) is waved forth and back at the SCSU campus in a lipservice attempt to convince stakeholders and public how much SCSU is with the times.

Once details transpire, however, one can see that 802.11AC allows 1GB connection and for the last 15 years, the SCSU IT never made it transparent (discussion? forget it), when 1 GB LAN will come to the campus. How can SCSU IT wave the BYOD flag, if older and more important issues are not resolved? Even if they are resolved, how does SCSU IT expect faculty to embrace the technology, if it is sold by the IT people? The sound pedagogical approach to new technologies must be done by faculty not by IT folks.

In order for BYOD, for that matter any other technology on campus to work (work means to a very large degree “accepted by educators,” the second most important stakeholder after the students – faculty – must be on board. Are they really on board controlled and dimmed by the SCSU IT?

Posted in announcement, information technology, technology literacy | No Comments »

big data and LRS door counters

Posted by Plamen Miltenoff on 30th March 2015

LITA discussion (attached below) on how one can easily do real-time but also big-data like estimate of patrons’ attendance in the library.

GitHub https://github.com/ and listuser@chillco.com Cary, for wifi connected counter

From: Cary Gordon [mailto:listuser@chillco.com]
Sent: Sunday, March 29, 2015 9:35 AM
To: lita-l@lists.ala.org
Subject: [lita-l] Re: patron/door counter

I am not an expert on door counters, but I think that it would be pretty simple — no, really — to make your own system using a small, inexpensive computer like a Raspberry Pi with a wifi adapter and connect it to your current counter. It would take a little programming, but the result could be something that the community could share.

If you are interested in this, we could create a project on GitHub. I would be happy to help.

Cary

On Mar 28, 2015, at 2:49 PM, Mason Yang <hyang@marymount.edu> wrote:

Hi,

We have a old door counter which can only be checked manually. We are looking for a new door counter system which can help us to find out how many patrons come in during certain hours. I found a couple systems online and would like know if some libraries recently installed any door counter systems and what’s your experience with them. I made a short list of questions below. If you can take a few minutes to answer those questions or just drop a line or two of your comments to reply to this email, I will really appreciate it.

Thanks in advance for your time and inputs!

  1. what’s the model and the brand of the door counter system?
  1. Wired to your network or wireless connected to the internet?
  1. Does the system count the number of entries/exists hourly?
  1. Dose the system generate reports,if any, automatically?
  1. What’s your general experience of the system?
  1. Will you recommend the system to other libraries?

 

Thanks,

Mason Yang

Electronic Services Librarian

Library & Learning Services

Marymount University

 

Phone: 703-526-6844

Fax: 703-284-1685

mason.yang@marymount.edu

Posted in Digital literacy, information technology, Library and information science, technology literacy | 1 Comment »

Web applications index

Posted by Plamen Miltenoff on 24th March 2015

http://www.go2web20.net/

Posted in Digital literacy, information technology, mobile apps, mobile learning, online learning, technology, technology literacy | No Comments »

Social Homework Platform-

Posted by Plamen Miltenoff on 25th February 2015

Social Homework Platform Aims to Boost Student Engagement

http://campustechnology.com/articles/2015/02/25/social-homework-platform-aims-to-boost-student-engagement.aspx

Another step ahead/afar from CMS?

Koondis works in traditional large introductory lecture classrooms, blended classes and fully online courses that often are filled with students enrolled from various disciplines who are required to be there for their majors.

Described as a “social homework system,” a “discussion forum that puts students in small groups” and even a replacement for the campus learning management system, Koondis is showing great promise as a pill for student satisfaction.

The idea is that Koondis eliminates the need for teachers to read all of the posts. The program even counts posts for the instructor for grading purposes, and alerts the faculty member to do follow-up when a student isn’t participating.

Posted in information technology, instructional technology, learning, open learning | No Comments »

Library Use of eBooks, 2013 Edition

Posted by Plamen Miltenoff on 13th February 2015

Library Use of eBooks, 2013 Edition

http://www.researchandmarkets.com/publication/mq2u7gc/library_use_of_ebooks_2013_edition

The study also covers: use of eBooks for course reserves, eBook issues in interlibrary loan, and the emergence of dedicated endowments for eBook purchases. The study also covers the types of eBook models preferred by libraries of different types, and how librarians view likely developments in the eBook industry.

Posted in Digital literacy, ebook, information literacy, information technology | No Comments »

SCSU Tech Survey

Posted by Plamen Miltenoff on 13th February 2015

2015.02.13 ITS TechFeeSurvey2014 Presentation

Q14 What technology devices you currently own?

Q15 What technology devices do you plan to purchase in the next year?

Q17 How often do you use the following programs and services?

Posted in educational technology, information technology, instructional technology, mobile learning, online learning, social media, technology literacy | No Comments »

TMT Predictions 2015

Posted by Plamen Miltenoff on 8th February 2015

The re-enterprization of IT

TMT Predictions 2015

http://www2.deloitte.com/global/en/pages/technology-media-and-telecommunications/articles/tmt-pred-re-enterprization-of-it.html

 

Posted in information technology | No Comments »

GIS and GeoWeb Technologies

Posted by Plamen Miltenoff on 4th February 2015

https://www.libraryjuiceacademy.com/moodle/login/index.php

Eva Dodsworth

Since the emergence of easily accessible dynamic online mapping tools, there has been a drastic increase in geographic interest and awareness. Whether for personal, social, professional or academic uses, people are using Geographic Information System (GIS) technology to communicate information in a map format. Whether it’s using Google Earth to study urban change, or creating Google Map Mashups to deliver library resources, more and more members of society are turning to mapping programs for their visualization needs. With so many using GIS technology in their daily lives, library staff are now more than ever assisting library clients with their mapping queries.

This course will introduce students to a variety of mapping tools and GIS technologies such Google Earth and the creation of dynamic KML files; ArcGIS Online and webmap publishing; Google Fusion Tables and geocoding; and GIS fundamentals with geospatial data creation. Students will be able to apply their GIS skills in their reference work, in digitization projects, in webpages, in library instruction, and more.  Through hands-on exercises, pre-recorded demonstrations and lectures, students will receive a thorough overview of mapping resources that will enhance and expose their library’s resources.

 

http://www.placingliterature.com/map?modal=1

http://www.lib.uwaterloo.ca/locations/umd/WeekThree_Part_One.mov

http://www.lib.uwaterloo.ca/locations/umd/WeekThree_Part2.mov

http://www.lib.uwaterloo.ca/locations/umd/WeekFour.mov

 

– How to enable offline maps in your Google Maps app – http://www.huffingtonpost.com/map-happy/how-to-enable-offline-maps_b_6525832.html

– Huge news – Google Earth Pro, which used to cost the public $400 is now free! What does that mean for you? Extra features! You can import GIS files, tables, and export animated movie files!  http://google-latlong.blogspot.com.es/2015/01/google-earth-pro-is-now-free.html

– Don’t live in Canada?  Too bad! Google Maps plots best tobagonning hills in Canada!http://www.ctvnews.ca/canada/google-map-plots-canada-s-best-tobogganing-hills-1.2218207

– a map of 19 countries that were named after specific people – http://www.vox.com/2015/2/1/7954179/map-countries-pe

 

Maps that shaped the world

http://www.bbc.com/news/magazine-30840318

 

 

Content for Week Two – February 9th – February 15th

Week Two:

Podcast includes:

  • Citizen Mapping
  • OpenStreetMap – crowdsourcing
    more heads are better then one
    NYPL geomapping volunteers.

http://www.openstreetmap.org/

  • Google Map Maker

    Google Map Maker

  • http://www.google.com/mapmaker

    citizenmapping scientific geograph are synonyms for crowdsourcing

citizen crime reporting app for NYPD http://www.nyc.gov/html/nypd/html/crime_mapping/nyc_crime_map_introduction.shtml

when the jet disappeared, crowdsourcing for parts on the satellite maps of the ocean

potholes map

maps of the threes. emerald bug in Mnpls

http://www.fuf.net/

how does foursquare and checkins in FB and Google +fit it

  • Google Earth
  • Assignment

Podcast and Powerpoint can be accessed from:http://www.lib.uwaterloo.ca/locations/umd/JuicyLibrarianMaterial.html

Tutorials: Google Earth

Assignments:

1.       Discussion question:

Discover some citizen mapping projects that you are interested in OR

Contribute your local knowledge to Google Map Maker AND Share with the class online

2.       Google Earth Map

Please complete the tutorial and then create a map in Google Earth with the following components:

  • A title
  • A written introduction to your project
  • At least five placemarks, embedded with html tags, and images, if possible.
  • Imported KML file(s) file format by GEarth, but other apps is using it. using notepad or MS Word, one can create KML file.
    screen overlay, can be text, image, anything. legend. HTML code.
  • A screen overlay  (i.e. a legend)

areal photography.

history.
images from the library, Google is willing to buy them. citizen mapping. scanning and uploading.

geographical and societal awareness.

Gallery: 360Cities.

google street view – historical views

Google Earth Mapping

Submit online as a KML/KMZ file

I had the opportunity to experience a gizmo that can be used to display a variety of mapping projects, including citizen mapping: Science on a Sphere. It is a sphere on which you can project static maps or animations. The one I saw, in the National Oceanic and Atmospheric Administration’s facility on Ford Island in Honolulu, displayed animations showing the 2004 Indian Ocean tsunami and the 2011 tsunami in Japan, as well as airline flight paths, ocean currents, polar ice cap change over time, and many other types of geospatial data.

The Great Backyard Bird Count actually starts today and runs through Monday, February 16th. At a minimum, it only requires 15 minutes of observation on any or all the days:  http://gbbc.birdcount.org/

Happy Cow is a site well-known to many vegetarians/vegans for finding restaurants which I’ve used when travelling. Users can submit reviews and/or restaurants that they’d like profiled (although the site reserves the right to approve or not the listing). http://www.happycow.net/search.html 

———————————–

wq and leaflet – a framework that could catch on
by Timothy Clarke - Thursday, February 12, 2015, 2:21 PM

One of the impediments to citizen mapping is the line-of-sight cell tower limitations of mobile phones, or the wifi requirements for other mobile devices.  Citizen mapping in urban and suburban environments is well-served by mobile devices, but what about natural areas, dense leaf cover, or extreme topography?  Even if obtaining absolute mapping coordinates isn’t the issue, much crowdsourcing assumes an ability to connect back to a central data repository (e.g., a web database, ‘the cloud’).  Equipment that can interact with GPS satellites and support data capture is typically expensive and generally requires proprietary software.

wq (https://wq.io/) is a framework that is ‘device first’ and ‘offline-enabled’.  It attempts to leverage several open source technologies to build an entire mobile solution that can support citizen science data collection work, and then synchronize with a central repository once the device (and operator) return to an area served by cellular or wifi networks.

I’m stretching here, so if I get stuff wrong, please don’t yell.  Still, I’ll take a pass at generally describing the framework and its related technology stack.

wq relies upon python, and a web framework called django for building offline-capable web apps that can run on iOS and Android devices.  These web apps, then, rely very heavily upon javascript, particularly requirejs (http://requirejs.org/) and mustache (https://mustache.github.io/), for the templates that permit quick and (somewhat) painless web application development.  Data visualization relies upon d3.js (http://d3js.org/), and geography makes heavy use of Leaflet (http://leafletjs.com/) — maybe the most pertinent layer of the stack for those of us in this course.  If you’re not familiar withLeaflet.js, check it out!

Finally, wq extends several other open source technologies to enable synchronizing between a central data repository and multiple mobile devices in the hands of citizen mappers.  Lastly, wq employs a set of tools to more easily build and distribute customized mapping apps that can be served from Apple’s app store, Google Play, etc.

What wq intends is to allow highly specialized citizen science/citizen mapping apps to be more easily and quickly built, based upon a solid collection of aligned F/OSS tools.  Ideally, an app can spin up quickly to respond to a particular need (e.g., a pipeline spill), or a specialized audience (the run up to a public comment period for a development project), or even something like a high school field trip or higher ed service learning project.

Some examples of citizen mapping projects already built upon wq are here:

https://wq.io/examples/

—————–

Creating a walking tour map with Google Earth_2014

————-

Week 3

Podcast includes:

  • Geocoding
  • Georeferencing
  • Spatial Data Formats
  • Geospatial Data Online
  • Discussion Question

Podcast and Powerpoint available from: http://www.lib.uwaterloo.ca/locations/umd/JuicyLibrarianMaterial.html

Tutorials: BatchGeo (optional); Google Fusion (optional)

https://en.batchgeo.com/

enter Xcel data, and export KLM file ready for google map and/or google earth

https://support.google.com/fusiontables/answer/2571232

http://en.wikipedia.org/wiki/Google_Fusion_Tables

store maps online, no latitude needed.
visualize geospatial data by map
spatial analysis by mapping different layers together
showing data by map, graph or chart
e.g. how many cars cross specific point
crowdsourcing: spotting butterflies, using fusion tables to map the spices and sightings
http://www.theguardian.com/news/datablog/2011/mar/31/deprivation-map-indices-multiple

students: journalism, history, geography.

Georeferencing (geocoding – data, geo referencing – image)
historical air maps or photos are much more useful when they are georeferenced.
Photos from different year is difficult to lay over one another without referencing. the only reference might be the river. usually reference the four corners, but sometimes river. Using GIS program to determine the longitute/latitude for each corner. sometimes only farmland and it is impossible

 

Posted in Digital literacy, information technology, instructional technology | 2 Comments »