Skip to content

Instantly share code, notes, and snippets.

View tensiondriven's full-sized avatar

Jonathan Yankovich tensiondriven

View GitHub Profile
last_week = <<EOT
-- chart_total_time_by_day
SELECT SUM ( EXTRACT( EPOCH FROM entries.end) - EXTRACT( EPOCH FROM entries.start) ) / 60 / 60 AS ct,
sub_dates.val AS d
FROM
(select '#{start_date.strftime('%Y-%m-%d')}'::date + generate_series(0, abs('#{start_date.strftime('%Y-%m-%d')}'::date - '#{end_date.strftime('%Y-%m-%d')}'::date)) AS val) AS sub_dates
LEFT OUTER JOIN
(select * FROM entries WHERE user_id = #{userid} #{where_task_id_clause}) AS entries
ON
date_trunc('day', entries.created_at) = sub_dates.val
Jonathan Yankovich
3:34 alright… here's my idea for this data layer
3:35 actually it was matts idea, heres my implementation:
3:35 New model with: Task, User, Timestamp, Sample Size, and Sample Value (duration)
3:35 So, a typical record might be User 1, Task 1, 1:00pm, 1 hour, 20 minutes
3:36 meaning between 1:00 − 2:00 pm, user 1 spent 20 minutes on task 1
3:36 These would be generated for a given slice of time, and for a given resolution
3:36 Ex, one report for totals for the whole day might have a sample size of one day (24 hours) with total time for that task in that one record
3:37 but if the user requests a more granular report, the systme would generate a series of records with 1 hour time slices, ie 24 records, 1 hour per record, where each record shows how much time was spent on that task in that time period
3:37 many records may be generated with 0 minutes as their actual duration
traceroute: Warning: google.com has multiple addresses; using 173.194.38.137
traceroute to google.com (173.194.38.137), 64 hops max, 52 byte packets
1 192.168.1.1 (192.168.1.1) 949.937 ms 8.384 ms 4.646 ms
2 180.254.224.1 (180.254.224.1) 912.359 ms 599.573 ms 510.168 ms
3 180.252.3.157 (180.252.3.157) 720.499 ms 1182.759 ms *
4 45.subnet118-98-57.astinet.telkom.net.id (118.98.57.45) 1714.358 ms 934.298 ms 937.011 ms
5 113.subnet118-98-62.astinet.telkom.net.id (118.98.62.113) 1177.779 ms 2028.159 ms 643.433 ms
6 ppp-spl-a.telkom.net.id (61.5.48.17) 2041.459 ms 691.536 ms 1030.260 ms
7 98.191.240.180.telin.sg (180.240.191.98) 933.084 ms 505.898 ms 1324.144 ms
8 74.subnet118-98-61.astinet.telkom.net.id (118.98.61.74) 1589.766 ms
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks"}
devise_scope :user do
get '/users/auth/facebook' => 'users/omniauth_callbacks#facebook'
end
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_omniauth_authorize /users/auth/:provider(.:format) devise/omniauth_callbacks#passthru {:provider=>/(?!)/}
user_omniauth_callback /users/auth/:action/callback(.:format) devise/omniauth_callbacks#(?-mix:(?!))
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
<script>
$.ready(function() {
$('#species_guess').simpleTaxonSelector();
});
</script>
<div class="simpleTaxonSelector">
<input id="species_guess"/>
<input id="taxon_id" name="assessment[taxon_id]" type="hidden" />
</div>
@tensiondriven
tensiondriven / gist:5144945
Created March 12, 2013 17:22
Last5 Cheers
"Just a quick note to tell you how much I like this system. I just happened on the IOS app yesterday. I am going to try the web system and see. I run a medical device company. A crucial issue is time management and corresponding productivity potential is how is time actually spent. Planned time is just that. But what counts is how does a person actually spent time."
@tensiondriven
tensiondriven / gist:5201595
Created March 20, 2013 01:19
List of items
%table
%tr
%td
Startup Name
%td
Link
- @user.startups.each do |startup|
%tr
%td
= startup.startup_name
class Rectangle < Object
@@num_rects = 0
attr_reader :width, :height
def initialize(width, height)
@width = width
@height = height
@@num_rects += 1
end
def display_to_hundred
# range:
# print (1..100).to_a
# n = 0
# 100.times do
# n += 1
# puts n
# end
n = 0