Skip to content

Instantly share code, notes, and snippets.

View marcusramberg's full-sized avatar

Marcus Ramberg marcusramberg

View GitHub Profile
![Convos](http://convos.by/images/logo.png)
Convos is the simplest way to use IRC. It is always online, and accessible to your web browser, both on desktop and mobile. Run in on your home server, or cloud service easily. It can be deployed to Heroku or Docker-based cloud services, or you can just run it as a normal Mojolicious application, using any of the Deployment Guides.
![Screenshot](http://convos.by/images/screenshot.jpg)
## Features
#### Always online
The backend server will keep you logged in and logs all the activity in your archive.
$self->render_steps(sub { ... } , { ... }, { ... });
=>
$self->render_later;
Mojo::IOLoop->delay(sub { ... } , { ... }, { ...}, { #trigger automatic rendering })
->on(error => sub { shift->render_exception(shift) })
APP_ROOT = File.expand_path(File.dirname(File.dirname(__FILE__)))
ENV['BUNDLE_GEMFILE'] = File.expand_path('../Gemfile', File.dirname(__FILE__))
require 'bundler/setup'
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 30
preload_app true
pid APP_ROOT + '/tmp/unicorn.pid'
listen ":8080"
t/avatar.t ................................... Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/22 subtests
(4 TODO tests unexpectedly succeeded)
t/chat.t ..................................... 1/?
# Failed test 'doe is probably offline.'
# at t/chat.t line 156.
# got: 'me doe No such nick/channel'
# expected: 'No such nick: doe'
# <li class="message network error" data-network="magnet" data-target="">
# <div class="timestamp" title="31. July 11:18:59">11:18</div>
TASK: [drone | Install required drone images] *********************************
failed: [cloudia] => (item=bradrydzewski/ubuntu) => {"failed": true, "item": "bradrydzewski/ubuntu", "parsed": false}
invalid output was: SUDO-SUCCESS-ridbhvcrljlvvxqoectqtmbmhbhhfwyb
Traceback (most recent call last):
File "<stdin>", line 1524, in <module>
File "<stdin>", line 159, in main
File "<stdin>", line 104, in pull
File "/usr/local/lib/python2.7/dist-packages/docker/client.py", line 239, in _stream_helper
size = int(socket.readline(), 16)
ValueError: invalid literal for int() with base 16: ''
# perl myapp.pl daemon -m production
Running 10s test @ http://127.0.0.1:8080/
2 threads and 100 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 117.17ms 15.70ms 224.15ms 89.77%
Req/Sec 425.74 43.45 472.00 67.44%
8482 requests in 10.00s, 2.23MB read
Requests/sec: 847.93
Transfer/sec: 228.40KB
~/Source/mojo   master  time perl -I lib -Mojo -E 'n { $p= Mojo::Path->new("/foo/$_/")->parts for 1 .. 100000 }'
1.61781 wallclock secs ( 1.61 usr + 0.00 sys = 1.61 CPU) @ 0.62/s (n=1)
perl -I lib -Mojo -E 1.89s user 0.03s system 99% cpu 1.932 total
~/Source/mojo   master  git stash apply
# On branch master
# Changes not staged for commit:
# modified: lib/Mojo/Path.pm
#
no changes added to commit
~/Source/mojo   master ●  time perl -I lib -Mojo -E 'n { $p= Mojo::Path->new("/foo/$_/")->parts for 1 .. 100000 }'
We couldn’t find that file to show.
DEBUG - POST (0.0790s) /api/v2/sessions/signup - 500 Internal Server Error
bug/toolbar.rb:54:in `pass'
/Users/marcus/.rvm/gems/ruby-2.1.2/gems/rack-bug-0.3.0/lib/rack/bug/toolbar.rb:49:in `call'
config.ru:27:in `block (2 levels) in <main>'
/Users/marcus/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `call'
/Users/marcus/.rvm/gems/ruby-2.1.2/gems/rack-1.5.2/lib/rack/handler/webrick.rb:60:in `service'
/Users/marcus/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:138:in `service'
/Users/marcus/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/httpserver.rb:94:in `run'
/Users/marcus/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/webrick/server.rb:295:in `block in start_thread'
FATAL - Finitio::TypeError - Invalid value `null` for Main:
✘  ~/Source/convos   feature/archive  MOJO_REDIS_DEBUG=1 CONVOS_REDIS_URL=test prove -lv t/chat.t
t/chat.t .. [Mon Sep 1 19:27:28 2014] [debug] Using existing asset for font-awesome.css
[Mon Sep 1 19:27:28 2014] [debug] Using existing asset for convos.css
[Mon Sep 1 19:27:28 2014] [debug] Using CONVOS_REDIS_URL environment variable as Redis connection URL.
REDIS[0d575558542619f5db4ec8c25ff33429] <<< ['*2','$6','SELECT','$2','14','']
REDIS[0d575558542619f5db4ec8c25ff33429] <<< ['*1','$7','FLUSHDB','']
REDIS[27de5a61a728ee1a2764c866b44e1a91] <<< ['*2','$6','SELECT','$2','14','']
REDIS[27de5a61a728ee1a2764c866b44e1a91] <<< ['*4','$6','LRANGE','$14','convos:secrets','$1','0','$2','-1','']
REDIS[27de5a61a728ee1a2764c866b44e1a91] <<< ['*3','$6','GETSET','$19','convos:secrets:lock','$1','1','']
REDIS[27de5a61a728ee1a2764c866b44e1a91] <<< ['*3','$6','EXPIRE','$19','convos:secrets:lock','$1','5','']