From the Bookmarks Bar – August 30, 2013

This week from the bookmarks bar I’ve got some interesting new developments in the world of Android development, a great new JS app for chip tune lovers and some great suggestions for front-end developers to promote code reuse.

C++ Compiler for Android

Want to start tinkering with Android applications but not that up to date on Java.  Good news!  Intel has released their own compiler for C++ that generates native Android applications.  Better yet, it is free for the time being.

Band.js: An 8-bit JavaScript Audio Library

Anyone who loves video games is no doubt a fan of the old chip tune music from the days of the NES and Game Boy.  Using a new library, you can create 8 bit chip tunes using only JavaScript and the HTML5 audio API.  Check out the link for some sample tunes from Super Mario Bros., Tetris and Zelda.

Decoupling HTML, CSS and JavaScript

Decoupling is a must with web applications; we have many design patterns that we follow and we split our applications into layers for this purpose.  However, we often think of the view as just one part of that application.  Most web applications have multiple front ends and it helps to be able to reuse HTML and CSS where possible.  Here is a good look at ways to do it.

Thanks for reading!  If you have some great bookmark suggestions please let me know in the comments!

From the Bookmarks Bar – August 16, 2013

This week I’m excited to share a few great links From the Bookmarks Bar.  I have two great development tools and a free course that is very interesting.  Everyone loves free learning!  Take a look!

Koding: Free Virtual Machines for Developers

A new project called Koding has recently launched, with the goal to provide free virtual machines with development environments available to anyone.  The VMs run an instance of Ubuntu which you can use to develop on any language you wish.

The World’s Simplest HTML5 WYSIWYG Editor

Getting tired of the bulky, complex WYSIWYG editors?  Want something fast and easy to use?  Check out the world’s simplest editor.  With Bootstrap and around 100 lines of HTML/CSS/JS you can have a fully functioning HTML editor on your site.

Create Your Own Programming Language

Ever wondered what goes into developing a new programming language?  Here is a great introductory level course that goes over the basics of everything from parsing to compiling.

Thanks for reading!  Do you have some links you would like to see in the bookmarks bar?  Leave a comment or let me know on Twitter!

From the Bookmarks Bar – August 3, 2013

It’s a little late, but I’ve got a few awesome links for this week’s bookmarks bar.  They include a great new piece of open source software, an update to an awesome web development framework and some suggestions for self improvement for developers.

Tox

Tox is a brand new piece of open source software for secure messaging, calls and video chat.  It was created to provide a more secure alternative to Skype following the news that Skype was providing data to the NSA.  While it is not in wide release at this time, you can pull from the Tox git repository and build the application on your machine, if you would like.

12 Things That Would Make You a Better Developer

While I can’t say that I agree that all of these are absolutely necessary, many of these can help you become a much more efficient developer at the least.  I would recommend the section on pushing for more automation.

Bootstrap 3

Twitter’s Bootstrap framework for front-end web development has just unleashed the release candidate of version 3.  The framework boasts an all new flattened look with a focus on speed improvements.  Don’t like the look?  There are plenty of add ons out there to customize Bootstrap to your liking!

Thanks for checking out this week’s links.  Found any cool Bootstrap designs?  Let me know on Twitter!

From the Bookmarks Bar – July 26, 2013

This week I’ve got a good mixture of links from the bookmarks bar that range from development tools to a “How It Works” to a little bit of programmer humor.  Without further ado, here they are:

How HTTPS Works

Ever wondered how such an open standard could possible be secure?  You’re not alone.  Here is an A-Z look at how HTTPS works.

Regular Expression Visualizer

There are many tools for visualizing regular expressions on the web, but I like this tool because of how clean the output is.  It’s simple enough to provide a great view of basic expressions, but expands well for those that are more complex.

Common Developer Interview Questions

No matter how long you have been in the game, it is always beneficial to brush up before an interview.

Things Only Developers Find Funny

It’s always nice to end the week with some humor.  Here are some great programmer jokes, including some that I’ve never seen before.

That’s another look at some links from the bookmarks bar.  Thanks for reading!  Have a great weekend!

Avoid HTML Escaping in an ASP.NET MVC WebGrid Column Format

I ran into an issue with the new ASP.NET MVC WebGrid.  I had difficulty finding any information out there on a good way to do this, so I thought I would post my solution.  The WebGrid easily generates paged and sorted tables automatically. You can find more information on the ASP.NET MVC WebGrid here.  In my case, I am listing some data for the user and I want to show any new rows in bold to make it more noticeable. Adding any HTML tags to the format property as a string will result in the tags being escaped. See the following example:

@grid.GetHtml(
        columns: grid.Columns(
            grid.Column("Text", format: (item) => item.New ? item.Text : "<strong>" + item.Text + "</strong>")
        )
    )

Notice that item.New is a Boolean value.  This results in the following encoded HTML output within the table cell:

<strong>Sample Item Text</strong>

Not exactly the intended effect.  However, if you pass in a new object of type MvcHtmlString with the string in its constructor:

@grid.GetHtml(
        columns: grid.Columns(
            grid.Column("Text", format: (item) => item.New ? item.Text : new MvcHtmlString("<strong>" + item.Text + "</strong>"))
        )
    )

Voila!  This will result in the properly bolded text:

Sample Item Text

This method will work for any of the other Html Helpers as well, though my example specifically references WebGrid.  In other cases, the Html.Raw method can be used to print HTML, but inside of the grid column it will still be escaped.  I’ve tested multiple ways of adding the grid column format using “@:”, but none of the documented methods seem to work within a ternary operator.

BitTorrent Sync and the Future of Peer-to-peer

In recent years, Peer-to-peer networks have matured greatly.  They have most commonly been used as a means to transfer files indirectly without needing a centralized host, but peer-to-peer networks are increasingly being used for more intensive and private processes.  They are many services that use peer-to-peer networks to stream media content.  Spotify uses them to assist their servers to stream music to their users and Skype uses them for video chat.  However, Bitcoin has attracted the most attention to the peer-to-peer evolution.  It’s changing the way we think about currency and the capabilities of secure peer-to-peer data transfers.

The newest addition to the crowd is BitTorrent Sync, a solution for securely sharing and updating files across multiple devices.  BitTorrent Sync places a focus on security; all data transfer is encrypted with a 256-bit AES encryption key, so your files are kept private.  If you want to send files to another user, there is a public key-like process available.  This process relies on keys called “secrets” that are directly linked to the permissions that can be performed by a user on the synced files.  You can provide users with full control, write or read-only access using a “secret” and BitTorrent Sync allows the proper level of control.  You can also

BitTorrent Sync is not a replacement for Dropbox, Google Drive or any other cloud storage.  It only syncs files across your devices; it does not back them up to the cloud.  If you upload a file to cloud storage, it is available whether the devices that you are using are connected or not.  With BitTorrent Sync, the file you need to retrieve would not be available on your laptop if your main PC is shutdown, unless you have it synced to another device.  Still, BitTorrent Sync is a great way to create an automatic offsite backup or sync large files.  It may at some point even rival single use, expiration based file sharing services such as YouSendIt.  Best of all, it won’t cost you or your company a dime.

BitTorrent Sync is currently available on Windows, OS X  and Linux.  One could speculate that iOS and Android versions are likely in the pipeline as well.