An interactive journey where a Canvas map path is animated according to the content that is scrolled on the page. By Lucas Bebber.
Not today Justin

blake kathryn
Show & Tell

izzy's playlists!
Lint Roller? I Barely Know Her
Three Goblin Art
Claire Keane

if i look back, i am lost

@theartofmadeline
hello vonnie
NASA


Jules of Nature
Cosimo Galluzzi
Misplaced Lens Cap
dirt enthusiast
Stranger Things
noise dept.
wallacepolsom
seen from Finland

seen from TĂĽrkiye

seen from TĂĽrkiye
seen from TĂĽrkiye

seen from United Kingdom
seen from United States

seen from Australia
seen from United States

seen from Netherlands

seen from Brazil
seen from TĂĽrkiye
seen from TĂĽrkiye
seen from United States

seen from Malaysia
seen from T1

seen from France
seen from Germany

seen from United States

seen from Brazil

seen from Netherlands
@tolomaps
An interactive journey where a Canvas map path is animated according to the content that is scrolled on the page. By Lucas Bebber.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
How to Hire or Be Hired: A Jobs Panel (#nacis2015 recap)
At the NACIS annual meeting last week, I ran a jobs panel with 5 people from various parts of the geo industry, including Azavea (Sarah Cordivano), CartoDB (Andrew Hill), ESRI (Sean Breyer), National Geographic (Martin Gamache), and the State Department (Leo Dillon). Thanks to all y’all! I wanted to run this panel because we learn in school about how to design a map, but we don’t learn how to a) go about searching for and securing a job, and b) hire someone else. I loved moderating the panel and am grateful to everyone who participated. Here are the questions that I asked.Â
I want to outline the key takeaways that came out of the session, in my subjective opinion. They’re mostly applicable to cartography / design / mappy jobs, but perhaps will be helpful to others, too.
Make an annotated portfolio. You should have an online portfolio. Employers are interested not just in seeing a bunch of stuff that you made, but they want to hear about your process for making these things. They want to hear how you creatively solved problems, what you would do differently next time, which software you used and how you used it. And it’s about quality over quantity. Don’t just throw in every thing you’ve ever made; pick out your best pieces and explain your creation process.
Your resume doesn’t matter as much as your portfolio. Most people said they didn’t care so much about where you’ve worked before or your exact experience, but they wanted to hear about projects that you’ve worked on that you were passionate about. No one looks closely at resumes, they’ll just give it a quick glance. But beware: a poorly designed resume is a red flag for a cartographer/designer position. And you should tweak it depending on which job you’re applying for; assess what they’re looking for and adjust accordingly to highlight different experiences.Â
Build a network. If the three rules of real estate are “location, location, location,” then the three rules of getting hired are “network, network, network.” Pretty much everyone on the panel said they almost exclusively hired people either from within their direct network or who were within a couple of degrees of separation. One panelist so poignantly said, “You have you to learn to network without being creepy.” Ask people at a place you’re interested in working at for an informational interview. Give a presentation at a conference. Encourage your university to make contacts with local companies.
Do your homework. Read up on the organization where you are interviewing. Read their blog to get a feel for their culture and what they value. Ask targeted questions. Think about why it is you want to work for that particular company.
Culture matters. I’ll just quote Martin Gamache here: “The fact is, you spend most of your waking hours with your co-workers, and if you don’t know how to get along with them, if you don’t know how to communicate effectively, it makes the workplace miserable for everyone else.” When looking for a job and when hiring, cultural fit is an elusive idea, but important nonetheless. Ask questions about culture to see if you think you’d fit.Â
Learning matters. Coming in with some hard skills is important, but everyone emphasized that they are looking for candidates who are looking to grow and who acknowledge that they don’t know everything. Â
Teaching matters. In an interview, it’s awesome if you can explain a complicated concept in layman’s terms. In the workplace, you’ll all be learning from each other, so they want to see if you’ll be good at teaching. It doesn’t mean that you need teaching experience, but rather that you are interested in building up others.
Be ready. Job postings often have tight deadlines, so have your resume and portfolio ready. They can be tweaked as needed for a given position, but it’s harder to create something from scratch on short notice.
Be real. Don’t oversell yourself. If you’ve taken one JavaScript class and haven’t done much outside of that, don’t sell yourself as an expert programmer. But be sure to mention that you do have some experience and are looking to learn more... unless you don’t want to learn more. In which case, just be upfront about what you are and aren’t looking for.
Negotiate. Some places have predefined, upfront pay ranges. Others don’t. But there is no harm in negotiating at every step of the process.Â
A few bonus tips from yours truly
Don’t wait for a job announcement to contact a place you’re interested in. I found an awesome internship last summer at Development Seed, but it’s not like they had an internship job description up on their website. I contacted a bunch of companies in search of an internship, and the vast majority who I heard back from didn’t actually have jobs posted on their websites.
Keep an ongoing list of places you’re interested in working. I have a spreadsheet with a list of every place I might possibly be interested in working at someday. It includes contact information and a note if I know someone who works there (or know someone who knows someone who works there). I am constantly adding to it as I see things pop up on Twitter or blogs. Then when it’s time to enter the job market, I don’t have to think, “Where should I apply?”
You’ll be rejected. Cry and then get over it. Let’s say 50 people apply for a given job. That means 49 people won’t get it. Which means I’ll be that person 49 times out of 50. You’ll probably need to apply to a bunch of places before you find the right fit.
Get over your imposter syndrome. You have something to bring to a team. You do. You are worthy and knowledgeable even if you don’t think you are. It can be intimidating to apply for jobs - you read a job description and think, “I only fit like 50% of this!” But it turns out that when they’re hiring for a job, they don’t expect to even find someone who fits all of the qualifications. Apply for the job. Send them an email and ask a question.
Fake it til you make it. One of the crazy things about being an adult is recognizing that no one knows what they’re doing. We’re all figuring it out as we go along. Speak confidently even if you’re not sure what you’re doing. Granted, this is a balance to #9 above. You don’t want to be disingenuous, but also trust yourself that you will be able to learn and grow.Â
And now, some personal musings
I worked hard to put together a panel that represented different parts of the geo industry. I also worked hard to put together a panel with good women representation. My original panel had 3 women and 2 men. Then 2 of the women couldn’t participate for one reason or another and replaced themselves with male colleagues. I was upset - white men are so overrepresented at conference sessions! But guess what - life goes on. And it turns out that white men are the people doing a lot of the hiring out there, so it might not be the worst thing in the world to hear what they have to say. I have nothing against white men by the way. I just want the world to be moving in a direction where it’s not just white men making all the important decisions. And I can’t say anything at all about racial diversity. I totally failed there. Improving diversity at NACIS in general is something that I would love to explore but have no idea where to start.
Speaking of, I asked a follow-up question to the panel in the section about culture that essentially said, “Hey, you value culture and cultural fit. That typically means hiring people who are like you. Does your organization care about diversity? What do you do to promote cultural diversity?” There were a couple of half-hearted attempts to answer it, but most panelists opted not to respond. From the fact that people largely didn’t address this, it’s clearly not a priority in hiring.
^This, coupled with the fact that most people hire other people based on their networks (this isn’t a novel idea from this panel, it’s pretty widely known) makes me think: someday, when I’m hiring a bunch of people, I want to make a concerted effort to hire people outside of my network. How is there supposed to be social mobility if we just continue to hire people within our inner circles?Â
Thanks
Thanks to all of the panelists who participated (Sean Breyer, Sarah Cordivano, Leo Dillon, Martin Gamache, Andrew Hill). Thanks to Timur Girgin and Kristen Vincent for taking notes for me during the session. And Morgan Jarocki for posting his notes online. Thanks to Tanya Buckingham for brainstorming questions with me. Thanks to NACIS for being the nicest.
Creating a bivariate choropleth color scheme
I recently created an infographic on the cost of child care in the U.S. for my graphic design in cartography class this semester. One of the assignment requirements was to include a bivariate map in the visual story.Â
A bivariate map is one that shows two different pieces of data on one map. You can also have multivariate maps, showing more than two variables (my personal fave is pop vs. soda). Bivariate choropleth maps shade different units (in my case, states - but could be counties or countries) different colors based on these variables.
Bivariate choropleth maps are difficult to understand, and thus difficult to make. Truth is, I don’t even think this map should be a bivariate map. You could probably better tell this story by simply mapping what percentage of people’s income goes towards child care.Â
But, alas, that is beside the point because I am here today to tell you how I created my bivariate choropleth color scheme. If you don’t know much about bivariate choropleth maps or want to make one yourself, I highly recommend Josh Stevens’ tutorial. It’s what I used to help me through the process, and it worked like a charm.Â
Creating a bivariate choropleth color schemeÂ
First, you could start by looking at other people’s schemes. Josh’s tutorial has a bunch of great starter schemes at the bottom of the post. As far as I know, no one has intellectual property of choropleth color schemes, and maybe someone else spent a lot of time thinking about a great scheme - you can benefit from their hard work.Â
Here’s the one that I ended up with:
Here are some rules for a good bivariate color scheme:
1. Don’t use more than 9 classes. Your legend should look like a 3x3 grid. More colors make it harder to distinguish between classes. The main idea here is for the map reader to think something like “oh it’s high in this variable but low in the other one” or “it’s high in both” but not necessarily for them to pull specific statistics out of your map. If you want them to look at specific statistics, give them a table.
2. Each row and column should stand as its own choropleth color scheme. If you look at each row and column of the above color scheme (even the diagonal one!), they could each stand as their own univariate color scheme. For example:Â
Would totally work on a univariate map. From left to right, the color is changing in value (aka how dark it is). Since darker typically = more, this means we can discern that as we go from pink to light purple to dark purple, there is more of that variable present. When I was playing around with the colors, I would cover up two of the rows and just look at one to see if it made sense (lighter to darker colors meaning increase in that variable). Same with the columns.
3. Make sure the colors are distinguishable. Don’t have two colors so close together that you won’t be able to tell which one is which on the map. Try testing out your scheme on the map and identifying which state has which color. I found it helpful to make the darkest color darker than I thought it needed to be.Â
4. Don’t reinvent the wheel. No need to create something from scratch. I tweaked one from Aileen Buckley’s 2013 NACIS presentation (slide 20 has a bunch of ArcMap schemes). Josh’s tutorial has a bunch of starter schemes at the bottom. If you find colors in an image you like on the internet, you can always take a screenshot or save the image, then use the eyedropper tool in Illustrator to pull out the colors you want.
5. Use gradients to find the middle colors. I found it wasn’t too hard to pick corner colors, but I needed a way to find the middle colors to make sure they were visually in the middle. So I used the gradient tool in Illustrator to create a rectangle with a gradient using the two corner colors. Then you go to Object > Expand and you can basically turn this rectangle into a bunch of tiny rectangles. You can then use the eyedropper tool to grab the color in the middle of the gradient and that’s your middle color of your scheme. MAGIC.Â
Here’s what I ended up with. The original ArcMap color scheme is on the left, and my tweaked one is on the right.Â
If you want more explanation on any part of this, don’t hesitate to contact me.
(Thanks to Josh Stevens, Aileen Buckley, Robert Roth, and Tanya Buckingham for your indirect or direct help!)
Playing around with bivariate color schemes. It’s really hard to get any reading done when I can be tweaking color combinations instead.Â
I'm running for the NACIS 2015 board
I am running for the 2015 NACIS Board of Directors student representative position.Â
Two years ago, I arrived at my first NACIS meeting 6 months pregnant and without knowing anyone. I wasn't sure what to expect: would I be able to meet people? Would the sessions be so boring that I'd be falling asleep? Would I feel out of place?Â
I came away from those 5 days feeling like I had just left adult summer camp. I'd had a blast and learned a ton. The people were laid-back and friendly, while at the same time knowledgeable and helpful. The conference was the perfect combination of professional and academic talks, mixed with nature strolls around Greenville, South Carolina, and fun evenings hanging out with fellow carto-nerds. At that meeting, I met with Rob Roth, who is now my advisor for a Master's in Cartography & GIS at the University of Wisconsin-Madison.Â
At my first NACIS conference in Greenville, South Carolina, with some awesome cartographers.
Here I am, two years later, with another NACIS conference and my first year of grad school at UW-Madison under my belt. I am running for the board because I would love to give back to the organization that has given me so much these last couple of years.Â
If I'm elected, I hope to bring in students from a broader reach of universities that haven't traditionally sent students to the annual meeting. As an undergrad at the University of Georgia, I loved my cartography classes, but didn't actually know anyone who made a living as a cartographer. Bringing a wider variety of students to our conference would allow them to see the range of possibilities of what you can do as a cartographer. The conference sessions would expand on what they are learning in the classroom. They could make connections that could help guide them during and after school. NACIS already has a network of university cartography labs across the continent and student travel grants to help students afford travel to the conference. But we should do a much better job of outreach.Â
Below is my formal bio for the ballot. Vote here! Elections are open until September 16th.Â
...And if you're not a NACIS member, you should join now and come to the 2015 conference in Minneapolis!
I am a Master's student in Cartography & GIS at UW–Madison. Before returning to grad school, I directed a mapping lab at a non-profit think tank in Bogota, Colombia, working on cartography projects on everything from renewable energy to corporate social responsibility. My current interests are in interactive cartography and UI/UX design, though my secret desire is to someday learn old-school methods of mapmaking that no one uses anymore. As the student representative on the NACIS board, I would like to attract students outside of the normal reach of the organization. NACIS has existing connections with university labs throughout the continent, and I would like to take advantage of these connections as a starting point to bring students that might not otherwise know about our annual meeting. I enjoy working as part of a team and would welcome the opportunity to give back to the organization that I fell in love with at my first conference in 2013, when my underdog GeoDweeb Geopardy! team came back to win it all.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Data management is the problem that programming is supposed to solve. But of course now that we have computers everywhere, we keep generating more data, which requires more programming, and so forth. It’s a hell of a problem with no end in sight. This is why people in technology make so much money. Not only do they sell infinitely reproducible nothings, but they sell so many of them that they actually have to come up with new categories of infinitely reproducible nothings just to handle what happened with the last batch. That’s how we ended up with 'big data.' I’ve been to big-data conferences and they are packed.
http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/
I'm giving a talk at State of the Map and need your help!
I'm giving a lightning talk at my first ever State of the Map conference in a few weeks. I'll be talking about how to organize and run a mapathon. I want to hear from people who have organized or participated in a mapathon so that I can draw from others' experience to provide the most relevant information during the talk.Â
Please take this brief survey if you want to help others organize mapathons to improve OpenStreetMap! https://www.surveymonkey.com/s/8YLRKKC
(or if you haven't organized a mapathon but have participated in one, take this survey)
Yesterday I published two maps about global seismic hazard.
Here’s how I made them.
I was collaborating with Annalisa Merelli, she had been looking into other places at risk of major earthquakes following the devastation in Nepal and wasn’t finding much good to go by. The...
Once again, OpenStreetMap wins in data accuracy
The past few days, I’ve heard a lot about the amazing work that the Humantarian OpenStreetMap Team is doing to fill out OSM data in Nepal following the earthquake there. I’ve participated a bit myself. If you’re interested in helping out with that, this is a good place to start.
But this post isn’t about that. It’s about the map of Colombia that I’m making (see previous post about making a hillshade in QGIS).Â
I want to include rivers on my map and was trying to figure out the best data source for the rivers. The thing about including rivers on terrain maps is that they have to align really well with the terrain, or it looks funny. Below, the blue line is from Natural Earth, which is often my initial go-to source for data. The yellow line is from NOAA’s Global Self-consistent, Hierarchical, High-resolution Geography Database. You can see how “high-resolution” that yellow line is.
But clearly these didn’t really fit the bill. I can see from the terrain where the river runs, and neither of those lines come even close. That’s when I turned to OpenStreetMap. Note the green line below.
It fits perfectly with the terrain. There are some areas of the country that will need to be cleaned up - the OpenStreetMap data includes too many rivers for a country-level map - but I’d rather start with more data than I need and work my way down.
So, you may be wondering - how did I actually download all of the rivers for Colombia? There’s an amazing tool called Overpass Turbo, which allows you to query specific OpenStreetMap data. So, for example, I could say, “I want to get all the rivers in Colombia!” and it’ll let me do that. It turns out that if you don’t really feel like learning how to do the querying within the API itself, there’s a plugin for QGIS that makes it even easier, called QuickOSM.Â
To get it yourself, go to Plugins > Manage and Install Plugins. In the search box, search for QuickOSM. Select QuickOSM and then press the Install plugin button.Â
To access the plugin, go to Web > Quick OSM > Quick OSM.
Then you can define the type of data that you want to get. In my example, I want the key = waterway and the value = river. I opt to just download the rivers in the extent of the map canvas and make sure that I have all of Colombia showing. Then just hit Run query. If you don’t know anything about key/value pairs, click on the “Help with key/value” button, and it will take you to this page, which explains how different features are categorized in OSM. Or send me a shoutout on Twitter and I’ll do what I can to help you.
Depending on the size of your query, the query may timeout - basically, it was taking too long to try and get that data from OSM. In this case, you can try increasing the amount of time that the plugin spends on the query. To do this, click the Show query button, which will take you to the Query tab of the plugin.Â
Notice that in the top line, it says timeout= "25″. This is the number of seconds that the plugin will spend trying to run your query. I just typed in 60 instead of 25, then hit Run query, and that was enough time to get the data I needed. Yippee!
Addendum: As I’m working my way through and cleaning up the rivers in Illustrator, I should point out that there are some areas where the Natural Earth area is better because the OSM data is incomplete. In general, for the case of Colombia, I have found that the OSM rivers are more detailed, but often disjointed. So my final map will be a combination of the Natural Earth and the OSM data, depending on the particular area.
When I express any shred of doubt about whether I deserve or am qualified for something, people often try to reassure me that I am just experiencing impostor syndrome. About 10% of the time, it’s true. Amelia Greenhall’s excellent piece, however, has inspired me to clear up a big misconception...

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
Not sure how useful this Washington Post interactive feature on happiness is, but got to give them credit for creative thinking.Â
How to create a hillshade using QGIS
The Why (if you just want the How To, skip down a bit)
I lived in Bogotá, Colombia, for 4 years. One of the things I miss most about it is living right next to the green mountains lining the eastern side of the city. We could climb up on the roof of our building and get a clear view of Monserrate.Â
Colombia is a country of mountains and rivers. I suppose you could say that about many places, but when I think of my travels there, I think of bus rides along winding mountain roads and hiking over a mountain pass at 4,650 meters. I think of taking off my boots to cross cold, glacier-fed rivers and of basking in the sun while riding down an inner tube on its way to the sea.Â
As a tribute to a place that was my adopted home for many years, I am making a shaded relief map of Colombia, emphasizing its mountains and its rivers.Â
I’ve never made a shaded relief map. I was intimidated -- they seemed hard, out of my reach. But as a cartographer, I felt that I needed to have that tool in my toolbox. I typically lean towards the data-driven side of mapmaking, but this time I wanted to make something beautiful to hang on my wall.Â
(Spoiler alert: It’s not that hard to make a shaded relief. At least, it’s not that hard to do a decent one. To do a Tom Patterson or Daniel Huffman style one, you’ve come to the wrong place.)
The How To: Creating a hillshade (aka shaded relief) using QGIS
I wanted to try QGIS because... well, because it’s free, open-source, and works on my Mac.Â
First, I started by downloading the DEMs. DEMs are digital elevation models - raster images that contain information about elevation for each pixel. I got the DEMs from Viewfinder Panoramas, a fabulous resource. I love whoever put it together. Thank you.
I downloaded the DEMs at a scale of 3″ arc second resolution. They came in large zip files, each one with several .hgt files inside them. I have no idea what this file type is, but you can easily load it into QGIS using this handy button.Â
There were a ton of these. Once they were all loaded in, it looked something like this:
I brought in a country shapefile from Natural Earth to make sure that I got all of the DEMs to cover the full extent of Colombia. Then, I merged all of the separate DEMs into one large one by selecting Raster > Miscellaneous > Merge.Â
For bathymetry (it’s like terrain, but for the ocean), I decided to use the Natural Earth bathymetry vector polygons. They don’t show as much detail, but they’re fine for now. I can always decide later that I want more detailed bathymetry and go grab data for it if I’m feeling ambitious.
So, now I have a raster image with the elevation data, but it doesn’t look like terrain yet. I was able to figure it out with the help of this blog post. Go to Raster > Analysis > DEM (Terrain Models).
That will bring you to this lovely dialog box:
Here’s what all of this means:
Input file (DEM raster): Select the composite DEM.
Output file: Select a name and location to save your new hillshade file.
Mode: Hillshade is the default, leave it at that.
Mode Options: This is where the fun happens.Â
Z factor (vertical exaggeration): This is pretty self-explanatory. The bigger the number, the more exaggerated the terrain looks.
Scale (ratio of vert. units to horiz.): This is where this blog post really came in handy. This is the scale of vertical units (i.e., elevation data) to horizontal units (i.e., the distance across the Earth’s surface). According to the GDAL documentation: “For LatLong projections near the equator, where units of latitude and units of  longitude are similar, elevation (z) units can be converted to be compatible  by using scale=370400 (if elevation is in feet) or scale=111120 (if elevation is in meters).” I used 111120 for my scale.
Azimuth of the light: This is the direction that the “light source” is coming from that is “shining” on your elevation data to make it look like terrain. If you make it 0, that means that the light is coming directly from the north. If it’s 180, that means it’s coming from the south (you can set the number anywhere between 0 and 359, like the degrees of a circle, with the circle starting at due north). The default setting is 315.
Altitude of the light: This is the angle of the light source from the horizon. So if it is 0, then the light source is on the horizon, if it is 90, the light source is directly overhead. The default setting is 45.
The input boxes are just an interface that writes a GDAL script for you to create the hillshade. This means you can also edit the GDAL script directly in the input box at the bottom of the DEM dialog. QGIS is pretty great in that way - it gives you an interface, but if you want to write the script yourself, you can.Â
I should note that the light source typically comes from the top-left, which is why the azimuth is set to 315 by default. This is because, for whatever reason, if the light source comes from the bottom-right, we (mis)interpret the mountains as canyons. It looks pretty crazy.
The output will be a TIFF file that you can open up in Photoshop or your program of choice to do some more processing on to prettify it. I’m planning future posts to talk about what I’ll do in Photoshop, plus how to include additional vector layers like rivers and cities.Â
A note about file management: you should come up with a naming system that works for you and stick with it. I was playing around with different scale, azimuth, and altitude settings and needed a way to remember which settings I had used for each file, rather than just making files that said hillshade1.tif, hillshade2.tif, etc. My personal system was to write the settings into the filename itself, something like HillshadeScale6Al45Az315.tif.Â
Thanks to Daniel Huffman and Tanya Buckingham for walking me through the different things I had to think through. I’m writing this down in the hopes that the knowledge you’ve given me can be passed along to others!
Mapping Montgomery Memories
My grandma passed away in February. We all called her Honey, which just fit her so perfectly. I can still hear her sweet Southern drawl saying, "Well hello, dahlin!"Â
She lived most of her life in Montgomery, Alabama, and that is where we went to bury her. It was such a familiar yet strange feeling being back there, knowing that I would probably never go back. Along with my sister and parents, we did one last tour of the city, visiting all of the special spots, each weighted with its own version of nostalgia.Â
One of these spots was the old train station, where my mom and uncle recounted going to pick up their dad when he got home from business trips. The railroad is still there, but the old train station is now a museum, offices, and a parking lot. They left the old stained glass, though.Â
My sister, who does printmaking as a hobby, commented that she loved the colors and wanted to incorporate them into some future print. Naturally, I thought of making a map to commemorate our final visit to this city.
I've had the thought rolling around in my head since that day, but today I found myself with some time on my hands and decided to start on it. First I gathered up the colors.
My ultimate plan is to make an interactive map that incorporates photos from that trip. This is just the start. More to come.
What if the Black Plague had killed off almost all Europeans? Then the Reconquista never happens. Spain and Portugal don’t kickstart Europe’s colonization of other continents. And this is what Africa might have looked like.
Don Norman Predicts the Future
From The Design of Everyday Things, by Donald Norman (1988):
Would you like a pocket-size device that reminded you of each appointment and daily event? I would. I am waiting for the day when portable computers become small enough that I can keep one with me at all times. I will definitely put all my reminding burdens upon it. It has to be small. It has to be convenient to use. And it has to be relatively powerful, at least by today's standards. It has to have a full, standard typewriter keyboard and a reasonably large display. It needs good graphics, because that makes a tremendous difference in usability, and a lot of memory―a huge amount, actually. And it should be easy to hook up to the telephone; I need to connect it to my home and laboratory computers. Of course, it should be relatively inexpensive.Â
He didn't foresee that it would be a camera, too, but he's pretty spot-on.

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
There is no line where you suddenly cross over from non-coder to coder, or from fake developer to real developer.  There’s no high priesthood. You start learning, and then you just keep going.
Examples of storytelling and news reporting with interactive maps