Thursday, December 27, 2012
Tuesday, December 25, 2012
Find: Sending this holiday e-card will teach you how to write a little HTML
Sending this holiday e-card will teach you how to write a little HTML
Codecademy is the most well known and well funded of the startups which sprouted over the last year and half offering innovative ways for normal folks to learn how to program. It attracted investors like Kleiner Perkins and Union Square Ventures, as well as high profile users like New York Mayor Michael Bloomberg. It was this writer's New Year's resolution last year, though sadly I stopped my coding practice after just a few weeks. Today the company is offering a new product themed for the holidays. Pick one of six holiday e-cards and the service will teach you how to create it yourself with a tutorial in HTML and CSS. You can tweak the existing "code cards" or create one from scratch with the help of a few prepared ingredients....
Find: Web Served, part 5: A blog of your own
Web Served, part 5: A blog of your own
We've got a Web server. We've got SSL/TLS. We've got PHP. We've got a database. Now, finally, it's time to do something with them: we're going to set up self-hosted WordPress, one of the Internet's most popular blogging platforms.
Certainly, WordPress isn't the only choice. There are many blogging platforms out there, ranging from big and full-featured content management systems (like WordPress, Drupal, or Joomla) to static site generators like Jekyll (and its customized variant Octopress, which I use on my own blog). However, WordPress is extremely popular, and it also has a wealth of themes and plugins available with which you can customize its behavior. So, because it's the platform that first comes to mind when people think of "blogging," we're going for it.
Disclosure, and a word on security
This isn't the first time I've talked about setting up WordPress. Some parts of this article will be taken from my previous blog post on the subject, though the instructions here will contain a number of improvements.
Sunday, December 16, 2012
Find: Web Served, part 4: Get your database on
Web Served, part 4: Get your database on
For new readers just joining us, this is the fourth in a series of articles on getting your hands dirty by setting up a personal Web server and some popular Web applications. We've chosen a Linux server and Nginx as our operating system and Web server, respectively; we've given it the capability to serve encrypted pages; and we've added the capability to serve PHP content via PHP-FPM. Most popular Web apps, though, require a database to store some or all of their content, and so the next step is to get one spun up.
But which database? There are many, and every single one of them has its advantages and disadvantages. Ultimately we're going to go with the MySQL-compatible replacement MariaDB, but understanding why we're selecting this is important.
To SQL or NoSQL, that is the question
In most cases these days, when someone says "database" they're talking about a relational database, which is a collection of different sets of data, organized into tables. An individual record in a database is stored as a row in a table of similar records—for example, a table in a business's database might contain all of that business's customers, with each record consisting of the customer's first name, last name, and a customer identification number. Another table in this database might contain the states where the customers live, with each row consisting of a customer's ID number and the state associated with it. A third table might contain all the items every customer has ordered in the past, with each record consisting of a unique order number, the ID of the customer who ordered it, and the date of the order. In each example, the rows of the table are the records, and the columns of the table are the fields each record is made of.
Saturday, December 15, 2012
Spotted: Node Summit - The Evolution of Javascript
Node Summit: The Evolution of Javascript
Hear about the evolution of Javascript from a panel of experts who have taken it from an idea to where it stands today, and learn what is on the horizon for the little scripting language that became one of the most popular programming languages in the world.Thursday, December 13, 2012
Project: Library Visualization
The Skimmer project, or “All Things N.C. State,” included adding and rewriting code in order to add features as well as optimize existing code.
Links:
Project
Voicethread
Repository
The main features that we added are:
An additional color scheme
The new color scheme consists of red and white bubbles.
Sound effects
An additional option was added to the sidebar for sound effects. These sound effects are heard when bubbles two or more bubbles collide.
A “Pointer Bubble”
This bubble is an additional bubble that follows the user’s mouse, allowing for a more interactive environment. Users can user the pointer bubble to repel other bubbles, or on the tablet version, repel bubbles with one finger while attracting them with another.
“Drag and Drop” Bubbles
A drag and drop feature was also added. This allows viewers to move bubbles around the screen, adding to the overall interactive nature of the bubbles.
We not only added new features, but also improved existing features. Changes were also made to:
Sidebar reorganization
The sidebar was reorganized to reflect the new features that were added as well as some features that our clients did not want, such as the keyword search and toggle between vibrant colors and vibrant images. We also added the option for turning the pointer bubble and sound effects on and off.
Prevent duplicate images
In the original version, bubbles with different keywords would be linked to the same article and therefore producing bubbles with duplicate images. Having these duplicate images reduced the visual appeal of the bubbles, so we created a check that only allows one image with a particular URL. Also, image bubbles are now separate from their corresponding keyword bubble, allowing the viewer to see more relative keywords.
Improve Runnability
We also improved the overall runtime of the project. This was done by attempting to optimize the code as well as fixing some errors involving how the code requests images. Additionally, the code was optimized for tablets to allow users to interact with bubbles using multitouch.
Increased interactivity within tablets
Not only was the code optimized for tablets, but the project running on a tablet provides an additional feature. The multitouch input of a tablet allowed us to create different bubble reactions depending on whether the touch was the first or second touch. On the first touch, bubbles are repelled while with the second touch, bubbles are attracted. Even though there is no specific “purpose” for this feature, it greatly increases viewer interactivity with the bubbles.
Future suggestions
While our project may look nice on the front end, the code on the backend is extremely unorganized due to the previous developers and designers. As a result of this chaos, the web application uses an extreme amount of memory and processing power while running. Although this may be acceptable for now, a useful project in the future would be to refactor the code completely, allowing it to conform to Javascript coding standards.
Project: NC 10 Percent
NC ten percent\htdocs\genXMLPartnersDetail1.php
NC ten percent\htdocs\genXMLParnersDetailHelper.php
NC ten percent\htdocs\partners.php
NC ten percent\htdocs\partners_detail.php
NC ten percent\htdocs\partners_detail1.php
NC ten percent\htdocs\partners_detail2.php
NC ten percent\htdocs\utilities.php
NC ten percent\htdocs\css\layout.css
NC ten percent\htdocs\css\jquery-ui-1.8.7.custom.min.js
NC ten percent\htdocs\css\jquery.slideto.min.js
NC ten percent\htdocs\test\genXMLPartnersDetail1.php
NC ten percent\htdocs\test\genXMLParnersDetailHelper.php
NC ten percent\htdocs\test\partners.php
NC ten percent\htdocs\test\partners_detail.php
NC ten percent\htdocs\test\partners_detail1.php
NC ten percent\htdocs\test\partners_detail2.php
NC ten percent\htdocs\test\utilities.php
NC ten percent\htdocs\test\css\layout.css
NC ten percent\htdocs\test\css\jquery-ui-1.8.7.custom.min.js
NC ten percent\htdocs\test\css\jquery.slideto.min.js
Project: Sustainable Gardens
Project: WSGreenways
The original website was hardcoded HTML, with little room for updating or upgrading functionality. Our first, and probably hardest task, was updating the web page to a more robust system. We changed the webpages to use php, hosted on an apache server and utilizing a mySQL database. The database is used to store values relating the events and to store the information on the greenways. The PHP allows us to access these database elements to display on the site, as well as helping create a form for submitting issues, and displaying current weather, and the forecast for today and tomorrow.
The original site listed accessibility info for each greenway in a separate tab, which we moved to the information tab to reduce redundancy. We also added pictures of each individual greenway to its respective page.
The report issues page sends an email to the city of Winston-Salem with the problem, and also has a mobile link for calling the city if there is a more pressing matter, or if it is more convenient for the user.
Some things we would like to have completed were real time GPS tracking translated into the report issues page. We also wanted to have automated driving directions to each greenway from someone's current location. Instead there is just entrance info under each greenway. Some of the greenways can be difficult to get to, and are not easily accessed from major roads. Trying to map it without proper information would be haphazard, especially considering some of the latest tech news regarding people getting lost in huge parks due to faulty mapping software. With the new back end of the site, it can be more easily updated to do these types of things in the future, if Winston-Salem chooses to.
Links:
Screencast Demo
WSGreenways Github
Team: Harendra Patel, Lai Tran, Lance McDonald, Andrew Felsher, Kyle Wrenn
Project: Real Estate Management
George Properties is a property management company that handles the more complicated and expensive aspects of property management for their clients. We were brought on to help create a website for the company that helps advertise their prices and services to potential clients as well as actually providing services to the company's present clients.
Our goal was to create a framework and design that looked professional and catered to the needs of both the owner and his clients. We designed the navigational layout and set up the pages that the company would eventually populate with content. Outside of that, we also added some functionality for their existing clients. We added a contact page, a service request form, and created listings of available properties. We also did some small scale work on the mobile display to ensure that the site looked reasonable on mobile devices.
Overall, our main objective was to create a manageable product for the company moving forward. We needed to create something that was readable, understandable, and repeatable for our client, who had very little html experience. We spent a large amount of time in post production walking our client through the site and making sure he understood what was happening and that he was happy with the direction the site had taken.
As the project drew to a close, we discovered some potential pieces that could be added in the future. Eventually, the owner wants to be able to receive job applications through the site. Also, the mobile display is need of further work in order to be more appealing to customers.
GitHub
Screencast
GeorgePropertiesNC.com
Team Real Estate : Anthony Ursetto, Dorian Bullerwell, Brian Martin, Christopher Jones, Eric Richardson
Main GitHub Page
Activate Good Gallery
Wednesday, December 12, 2012
Project: Mobile Search Library.
Basically, this is a mobile web, very similar to a web app. This mobile web allows user searching the library database and displays the results. Everytime user performs a search, there is an API call that sent to the live search service. The live search service then reads the API and returns a XML file that contains the results information. The mobile web will process XML file and display results to user.
For this project, we completed many works: adding refine search, changing interface and layout, correcting some limitations, and adding additional option for user's conveniences.Generally, we finished the initial plan to improve this mobile web.
However there are things that could be improved in future: quick option performing an "on-the-fly search"; improving the mobile web to be able to work on more devices; display only a few of the sub-filter options while giving the option to expand the list further; optimize choice of provided filter list; and more.
Links to Voicethread and GitHub repo:
Tuesday, December 11, 2012
Announcements: visitors during our final presentations (updated)
Currently scheduled as visiting us during final presentations are:
- Ravi Devarajan, SAS
- Alan Cox, David Motsinger & Lee Eason, WebAssign (updated to include Lee)
- Cory Lown, NCSU Digital Library Initiatives
- Tom Miller, NCSU Entrepreneurship Initiative
Monday, December 10, 2012
Reminder about projects
Sunday, December 9, 2012
Find: Russia, China, and other nations draft proposal to give ITU greater influence over the internet
Russia, China, and other nations draft proposal to give ITU greater influence over the internet
A proposal introduced Friday at the World Conference on International Telecommunications would lend the ITU and its member states greater control over the internet. Changes outlined in the document would transfer many duties related to the web's backend — IP address and domain name allocation, for example — away from ICANN. Instead, that power would be placed in the hands of individual governments. A leaked copy posted on WCITLeaks reveals that Russia, a longtime proponent of such ideas, has also rallied the support of the United Arab Emirates, China, Saudi Arabia, Algeria, Sudan, and Egypt in drafting the document.
"Member states have the right to manage all naming, numbering, addressing and identification resources used for...
Tuesday, December 4, 2012
Announcement: last day for course evaluation!
This is the last day to do online course evaluation! Please do take the time to evaluate this course, it really helps make the course experience better for your fellow students.
Best,
Ben
Monday, December 3, 2012
Spotted: Node Summit - The Importance of Cross Platform
Node Summit: The Importance of Cross Platform
Joyent's Ryan Dahl, Microsoft's Gianugo Rabellino and Rackspace's Paul Querna discuss why Node.js is so important for the future of cross platform application development.Sunday, December 2, 2012
Find: Good idea - Music Hack Day project maps out lyrics to Johnny Cash's 'I've Been Everywhere' in realtime
Music Hack Day project maps out lyrics to Johnny Cash's 'I've Been Everywhere' in realtime
In 1996, the legendary Johnny Cash recorded "I've Been Everywhere," putting his signature on an old-time country classic. The song, which rattles off dozens of locations throughout North America, was an appropriate fit a musician that toured rigorously throughout his storied career. Now through the magic of Google Maps, you can listen to the song while each one of those destinations is labeled with a Johnny Cash pin — all in realtime before your own eyes. Developer Iain Mullan whipped the project together for Music Hack Day London 2012 using MusixMatch (for lyrics), Toma HK and his own programming know-how. In all, mapping out "I've Been Everywhere"'s itinerary results in 112515 miles of travel. Cash undoubtedly crossed through many of...