Software

Legacy String Methods for Generating HTML

I'm always really excited to see new methods on JavaScript primitives. These additions are acknowledgement that the language needs to evolve and...

Get a Random Array Item with JavaScript

JavaScript Arrays are probably my favorite primitive in JavaScript. You can do all sorts of awesome things with arrays: get unique values,...

CSS :optional

A decade ago HTML and CSS added the ability to, at least signal, validation of form fields. The required attribute helped inform...

How to Reverse an Animated GIF

Modifying visual media via code has always been a fascination of mine. Probably because I'm not a designer and I tend to...

How to Get Extension Manifest Information

Working on a web extension can be kinda wild -- on one side you're essentially just coding a website, on the other side...

Popular

Birds I Have Known And Loved

[tds_leads title_text=”Subscribe” input_placeholder=”Email address” btn_horiz_align=”content-horiz-center” pp_checkbox=”yes” pp_msg=”SSd2ZSUyMHJlYWQlMjBhbmQlMjBhY2NlcHQlMjB0aGUlMjAlM0NhJTIwaHJlZiUzRCUyMiUyMyUyMiUzRVByaXZhY3klMjBQb2xpY3klM0MlMkZhJTNFLg==” f_title_font_family=”653″ f_title_font_size=”eyJhbGwiOiIyNCIsInBvcnRyYWl0IjoiMjAiLCJsYW5kc2NhcGUiOiIyMiJ9″ f_title_font_line_height=”1″ f_title_font_weight=”700″ f_title_font_spacing=”-1″ msg_composer=”success” display=”column” gap=”10″ input_padd=”eyJhbGwiOiIxNXB4IDEwcHgiLCJsYW5kc2NhcGUiOiIxMnB4IDhweCIsInBvcnRyYWl0IjoiMTBweCA2cHgifQ==” input_border=”1″ btn_text=”I want in” btn_tdicon=”tdc-font-tdmp tdc-font-tdmp-arrow-right” btn_icon_size=”eyJhbGwiOiIxOSIsImxhbmRzY2FwZSI6IjE3IiwicG9ydHJhaXQiOiIxNSJ9″ btn_icon_space=”eyJhbGwiOiI1IiwicG9ydHJhaXQiOiIzIn0=” btn_radius=”3″ input_radius=”3″ f_msg_font_family=”653″ f_msg_font_size=”eyJhbGwiOiIxMyIsInBvcnRyYWl0IjoiMTIifQ==” f_msg_font_weight=”600″ f_msg_font_line_height=”1.4″ f_input_font_family=”653″ f_input_font_size=”eyJhbGwiOiIxNCIsImxhbmRzY2FwZSI6IjEzIiwicG9ydHJhaXQiOiIxMiJ9″ f_input_font_line_height=”1.2″ f_btn_font_family=”653″ f_input_font_weight=”500″ f_btn_font_size=”eyJhbGwiOiIxMyIsImxhbmRzY2FwZSI6IjEyIiwicG9ydHJhaXQiOiIxMSJ9″ f_btn_font_line_height=”1.2″ f_btn_font_weight=”700″ f_pp_font_family=”653″ f_pp_font_size=”eyJhbGwiOiIxMyIsImxhbmRzY2FwZSI6IjEyIiwicG9ydHJhaXQiOiIxMSJ9″ f_pp_font_line_height=”1.2″ pp_check_color=”#000000″ pp_check_color_a=”#ec3535″ pp_check_color_a_h=”#c11f1f” f_btn_font_transform=”uppercase” tdc_css=”eyJhbGwiOnsibWFyZ2luLWJvdHRvbSI6IjQwIiwiZGlzcGxheSI6IiJ9LCJsYW5kc2NhcGUiOnsibWFyZ2luLWJvdHRvbSI6IjM1IiwiZGlzcGxheSI6IiJ9LCJsYW5kc2NhcGVfbWF4X3dpZHRoIjoxMTQwLCJsYW5kc2NhcGVfbWluX3dpZHRoIjoxMDE5LCJwb3J0cmFpdCI6eyJtYXJnaW4tYm90dG9tIjoiMzAiLCJkaXNwbGF5IjoiIn0sInBvcnRyYWl0X21heF93aWR0aCI6MTAxOCwicG9ydHJhaXRfbWluX3dpZHRoIjo3Njh9″ msg_succ_radius=”2″ btn_bg=”#ec3535″ btn_bg_h=”#c11f1f” title_space=”eyJwb3J0cmFpdCI6IjEyIiwibGFuZHNjYXBlIjoiMTQiLCJhbGwiOiIxOCJ9″ msg_space=”eyJsYW5kc2NhcGUiOiIwIDAgMTJweCJ9″ btn_padd=”eyJsYW5kc2NhcGUiOiIxMiIsInBvcnRyYWl0IjoiMTBweCJ9″ msg_padd=”eyJwb3J0cmFpdCI6IjZweCAxMHB4In0=”]
spot_imgspot_img