Upcoming Trip to Louisville

Posted about 7 hours back at pinupgeek - Home

Summer is upon us and it’s time for some of us to take a vacation. For me that means a brief trip to Louisville, Kentucky.

I’ve been to Louisville several times, but there are a few new spots that I’d like to visit this trip. For those of you who’ve never been, here are some things to check out if you ever get the chance.

Tourist Attractions in Louisville

Louisville isn’t a huge city (it’s 27th in the country by population), but at over half a million people, it isn’t too small either. And in a city of this size, there are plenty of attractions to see.

Downtown Louisville

In addition to being a bustling business district, downtown Louisville is very welcoming to tourists. These are just some of the museums in the area:

  • Frazier History Museum
  • Glassworks
  • Louisville Slugger Museum & Factory (they’ll give you a free miniature baseball bat if you take a tour)
  • Kentucky Science Center
  • Kentucky Museum of Art and Craft
  • 21c Museum and Hotel
  • The Muhammad Ali Center
  • The Kentucky Center for the Performing Arts

And if you’re a coffee drinker (like any respectable geek is), be sure to check out the new Sunergos Espresso bar on 2nd Street while you’re downtown.

Churchill Downs

When most people think of Louisville, the Kentucky Derby comes to mind. Of course it’s held in the beautiful Churchill Downs. Unfortunately I’m going to be a few months late for the Derby, but there are other horse races held there as well.

Louisville Restaurants

In addition to the other tourist attractions, Louisville hosts a ton of delicious restaurants. In fact, it was recently named one of the “foodiest cities” in America.

I’ve been to a lot of Louisville’s restaurants on previous trips, but this time I’m looking forward to trying out a new pub/beer bar — Four Pegs Beer Lounge. Supposedly they have a delicious chicken waffle sandwich that I’m dying to try.

Future Geekiness

I’ll be gone for a few days, but when I return expect some more posts about Ruby on Rails and some other recent projects.

Episode 54: Build your stuff on the side and have a good time

Posted about 20 hours back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

Episode 54: Build your stuff on the side and have a good time:

In this episode, Ben Orenstein is joined by 17 year old Jack Kaufman, author of The Found a Business Book. Ben and Jack discuss Jack’s inspiration for the book and how he got all his interviews, the other opportunities it’s led too, the common themes he uncovered in his interviews, the differences between those who got funding and bootstrappers, working on the book while in highschool, marketing he’s doing, his plans for the future, the issue with college computer science programs, his fears about the future, and much more.

Agile Software Development Principles

Posted 2 days back at Synaphy - Blog

Agile software development is about delivering the best possible result to customers for the fairest price. Agile focuses on people interactions, working software and the recognition that change in a software project is not something to be feared or negotiated, but wholeheartedly embraced.

Some of the key components of an Agile project that we put great emphasis on are:

  • Frequent Customer Interaction
  • Working Software

Frequent Customer Interaction

This is the only way to find the best solution to a problem. We work closely with our customers to define and refine a software application as it is being built. It is impossible to write down everything about a piece of software at the start of a project – if everything was known about the software, you’d be able to buy one off the shelf that met your needs exactly!

That’s why we frequently deliver… 

Working Software

The Agile approach puts strict timeboxes around development. We prefer to work in one- to two-week iterations. At the end of each iteration, you will receive a working, fully tested and deployable application.

You may find that an early iteration is already delivering sufficient business value – you can decide to stop a project at any time, no questions asked and no strings attached.

Why No Fixed Price?

We don’t believe that fixing the price of a software development project can result in a fair outcome. With an Agile approach, you pay exactly what the application is worth – no more and no less.

Minimal Risk

While fixed-price projects may seem like a less risky alternative before the start of a project, consider this:

  • when the developer runs out of money because they underquoted the project, the quality of the project will suffer.
  • when you have a great idea for a change to take the application to the next level – sorry, but that wasn’t in the original quote
  • you will spend inordinate amounts of time negotiating changes – time that could be better spent envisaging great new features for your application

So if you would like to know more about achieving the best possible outcome for the fairest price, talk to us

The post Agile Software Development Principles appeared first on Synaphy.

Featured Post 2

Posted 2 days back at Synaphy - Blog

featured-2
This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind.
This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind. This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind.
This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind.
This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind. This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind.

The post Featured Post 2 appeared first on Synaphy.

Featured Post 3

Posted 2 days back at Synaphy - Blog

featured-3

This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind.
This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind. This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind.
This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind.
This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind. This is an example of a WordPress post, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many posts as you like in order to share with your readers what exactly is on your mind.

The post Featured Post 3 appeared first on Synaphy.

International Solutions

Posted 2 days back at Synaphy - Blog

featured-3

The recent technological advances in communications and travel technologies have removed the barriers that used to make overseas business difficult. Thanks to the internet, cell phones, jet airplanes, Synaphy is able to provide international solutions to practically any country — whether domestic or foreign.

Synaphy’s International Clients

We have already worked with several companies overseas:

Four Pegs Beer Lounge
The Coffee Compass
Lyndon Animal Clinic
Avid Netizen

Will We Add You to this List?

Don’t let distance stand between us! If you’re interested in our services, drop us a line and let us know how we can help.

The post International Solutions appeared first on Synaphy.

Featured Post 1

Posted 2 days back at Synaphy - Blog

featured-1

The post Featured Post 1 appeared first on Synaphy.

Hello world!

Posted 2 days back at Synaphy - Blog

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

The post Hello world! appeared first on Synaphy.

Hello world!

Posted 2 days back at Synaphy - Blog

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

The post Hello world! appeared first on Synaphy.

Little Griz

Posted 2 days back at Mike Clark

Little Griz

Summer Sale: 40% Off Everything on Learn

Posted 3 days back at GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS - Home

You know what we’ve never done on Learn before? Offered a sale on every product on the site!

We’ve decided to take a quick break from smashing robots to offer 40% off on everything we’ve ever released.

You could save over $400 on one of our awesome workshops, $20 off one of our books or pay just $9 for one of our screencasts. Nine dollars! You can’t afford to not take advantage of this! The more you spend the more you save!

View a complete product listing and get 40% off.

Act now! This sale ends Tuesday the 25th at midnight. Void where prohibited. Use only as directed.

My First Day

Posted 4 days back at Mike Clark

My First Day

Episode #380 - June 21st, 2013

Posted 4 days back at Ruby5

Develop your fat-client JS apps with lineman, learn Elixer with PeepCode, Github's Repository Next, benchmarking ruby, motion-accessibility, and when projects disappear all in this episode of Ruby5!

Listen to this episode on Ruby5

This episode is sponsored by New Relic
New Relic is _the_ all-in-one web performance analytics product. It lets you manage and monitor web application performance, from the browser down to the line of code. With Real User Monitoring, New Relic users can see browser response times by geographical location of the user, or by browser type.

Lineman
Lineman makes it easy to develop and test your JS-heavy application without a server. It comes with everything you need to get going right out of the box.

Meet Elixir
Jose Valim takes you through his language while building a real-world library to parse HTTP streaming metadata files.

Repository Next
Github is getting a major redesign!

How To Benchmark Ruby
So you've got some Ruby code and you want to make it faster?

Motion-Accessibility
Accessibility in your iOS apps has never been easier.

When Projects Disappear
Another project (and maintainer) seem to have vanished overnight. Was it foul play? Were they abducted by aliens? We may never know!

HTTP Archive + BigQuery = Web Performance Answers

Posted 5 days back at igvita.com

HTTP Archive is a treasure trove of web performance data. Launched in late 2010, the project crawls over 300,000 most popular sites twice a month and records how the web is built: number and types of resources, size of each resource, whether the resources are compressed or marked as cacheable, times to render the page, time to first paint, and so on - you get the point.

The HTTP Archive site itself provides a number interesting stats and aggregate trends, but the data on the site only scratches the surface of the kinds of questions you can ask! To satisfy your curiousity, all you need to do is download and import ~400GB of raw SQL/CSV data. Easy, right? Yeah, not really. Instead, wouldn't it be nice if we had the full dataset of all the HTTP Archive data to query on demand, and with ad-hoc questions?

Google BigQuery + HTTP Archive

Well, good news, now you can satisfy your curiosity in minutes (or seconds, even). The full HTTP Archive dataset is now available on BigQuery! To get started, point your browser to bigquery.cloud.google.com and click the down arrow beside "API Project": Switch to project > Display project > enter "httparchive"

Once the project is imported, expand the project in left navigation and you'll see a collection of tables for individual pages and request data for each run of the HTTP Archive crawler. From there, pull up the SQL console, and go nuts! For example, let's start simple: what is the median time to first render?

SELECT
  NTH(50, quantiles(renderStart,101)) median,
  NTH(75, quantiles(renderStart,101)) seventy_fifth,
  NTH(90, quantiles(renderStart,101)) ninetieth
FROM [runs.2013_06_01_pages]

And the answer is: 2.2s median, 3.3s for 75th percentile, and 4.7s for 90th percentile. BigQuery provides a number of convenience functions, such as quantiles, statistical approximations, extended regular expression matching and extraction, and a lot more. Check out the query reference and query cookbook to learn more.

One JS framework is not enough!

To flex our new BigQuery muscle let's find pages which use multiple JavaScript frameworks on same page:

SELECT pages.pageid, url, cnt, libs, pages.rank rank FROM [httparchive:runs.2013_06_01_pages] as pages JOIN (
  SELECT pageid, count(distinct(type)) cnt, GROUP_CONCAT(type) libs FROM (
    SELECT REGEXP_EXTRACT(url,
      r'(jquery|dojo|angular|prototype|backbone|emberjs|sencha|scriptaculous).*\.js') type, pageid
    FROM [httparchive:runs.2013_06_01_requests]
    WHERE REGEXP_MATCH(url, r'jquery|dojo|angular|prototype|backbone|emberjs|sencha|scriptaculous.*\.js')
    GROUP BY pageid, type
  )
  GROUP BY pageid
  HAVING cnt >= 2
) as lib ON lib.pageid = pages.pageid
WHERE rank IS NOT NULL
ORDER BY rank asc

JQuery is the clear crowd favorite, but prototype (despite its age) is holding strong. Worse, there are many sites with three or four different frameworks, and even different versions of each one on the same page!

Happy dremeling - err, BigQuerying! For more examples, check out this gist with sample queries.

Elixir is for programmers

Posted 6 days back at Nuby on Rails

This article is heavily styled and is best viewed at PeepCode!

words and design Geoffrey Grosenbach
photography Paula Lavalle

The early 2000’s were an exciting time for dynamic programming languages.

Excitement was high for the upcoming Perl 6. It ran on a brand new VM built specifically for dynamic languages and included dozens of experimental syntax sugars such as the hyper operator, which could run a calculation on every element of an array (somewhat like map). I attended the Seattle Perl User Group every month where you couldn’t ignore the anticipation!

It was during these years that I first heard about a weird language that used indentation to define scope (now known as Python). And on January 1, 2001, Dr. Dobb’s journal published an article by Dave Thomas introducing Ruby to the West.

That’s not even counting the other languages I tried out for a few weeks each such as REBOL, RealBasic, and AppleScript.

There must be something special about the start of a decade, because I’m feeling that same kind of excitement and seeing that same kind of experimentation again. At the beginning of May we filmed a 2 hour video with Elixir creator José Valim. Elixir is a language that runs on the Erlang VM but is inspired by the syntax and concepts of many other languages including Ruby, Python, and even Lisp.

It’s not just a transpiler like CoffeeScript; it makes real Erlang .beam bytecode. According to some, parts of Elixir are even more optimized than Erlang itself. It benefits from all the concurrency and deployment options available to Erlang programs. Elixir can call Erlang functions and vice versa.

I don’t pretend to be an Elixir expert (that’s why we worked with José, who is), but I left the session with a lot of enthusiasm for Elixir’s design and features. Here are a few of them.

Smart assert

A programming language like Ruby loses a lot of data when you run it. It quickly loses access to the original source code. If you write a test with Ruby’s basic assert, it can only tell you that the test passed or that it didn’t; it can’t tell you why. Projects like ruby2ruby have tried to bridge this gap but haven’t had support from the core team.

Elixir works directly with your source code to do smart things. Tests rarely need more than the built-in assert, yet meaningful errors can be displayed. Take this Elixir code:

test "makes bacon" do
  assert Bacon.make_bacon() == "avocado"
end

By reading it, we can see that it’s erroneously making bacon but looking for "avocado". We expect that it will fail. If this were a test in Ruby (or any other language), we would see an error such as expected true, got false. Not too helpful.

In Elixir, we see this:

** (ExUnit.ExpectationError)
             expected: "bacon"
  to be equal to (==): "avocado"
at test/bacon_test.exs:14

Elixir knows that == is being used in the assertion, and shows you the values on either side of == when the test fails. Now that’s a useful error!

Multi-block control flow

For years I’ve wanted to be able to write my own control flow structures, such as an each...else that runs an else block if the each is empty (Handlebars templates have this).

The only way to do that in Ruby would be to pass several lambdas to a method, which would be ugly.

In Elixir, the relationship between single line functions and multi-line blocks is well thought out.

These two are equivalent:

# Single line
if(condition, do: a, else: b)

# Multiple lines
if condition do
  a
else
  b
end

In the single line version, if is a function that takes two arguments: the condition and the clauses. The clauses are do and else.

The multi-line version needs no explanation.

But the fact that these two are equivalent means you can write a macro that works just like a built-in. Because that’s how the built-ins are written, too! (source)

Consistent use of do

Developers who love Ruby like the fact that they can override built-in operators and write DSLs that look like built-in Ruby syntax.

But many of Ruby’s syntactical elements are off limits. You can’t write Ruby code that works like a class definition, or an if, or a case...when. Why? class has an end, but no do. There’s no way to write a custom method that takes a block without do.

Elixir is consistent.

Need a module? It’s defmodule...do. Need an if? It also uses do. Same with def.

defmodule MyModule do
  def my_function do
  
  end
end

If you want to write a macro that works like the language does, you can. Because Elixir is implemented with the same tools available for you to use.

Built-in TDD

I find it extremely difficult to learn a new language if I can’t write unit tests. My confidence in writing JavaScript and many other languages went way up once I started using a decent test runner.

With Elixir, it’s built in. Use the mix command to generate a new app and you’re ready to go with a unit test. Run mix test to run the test suite. Done.

It even has conveniences like a test function that takes a quoted descriptive message as the name of the test.

test "extracts m3u8 from index file" do
  m3u8s = Streamers.extract_m3u8 index_file
  assert Enum.first(m3u8s) == Streamers.M3U8[program_id: 1, bandwidth: 110000, path: m3u8_sample]
  assert length(m3u8s) == 5
end

And it can run your tests concurrently with a single async option (docs).

Mind-blowing metaprogramming: upcase

One of the most ingenious techniques that José mentioned didn’t make it into the final cut of our video.

To capitalize a word, Elixir could implement a single upcase function that keeps a list of Unicode letters in memory and figures out how to translate between them.

Instead, it generates a function definition for each letter. They look roughly like this (source):

def upcase("é" <> rest) do
  ["É"] ++ upcase(rest)
end

A few things are going on here. Elixir can match functions on the number, type, and content of its arguments. So it looks for a letter such as é. It knows the upper case version of the letter, then sends the rest of the string to the next letter’s upcase function.

Pretty cool!

Conclusion

Elixir has many of the features that I look for in a programming language. Its authors have stolen useful features from other languages, it focuses on making it easier to write complex applications, and it has a healthy balance between performance and syntax.

Elixir isn’t the only way to write concurrent applications, but it’s definitely one I’ll be experimenting with for a few months. If you want to learn what it’s about, check out our fast-paced two hour video at PeepCode: