encoding error while running Sinatra - ruby

I have my Sinatra-Redis Blog which had ran pretty well on my computer before I uploaded it on server. But I got the error that saying when I am running it on my server
"Encoding::CompatibilityError - incompatible character encodings: US-ASCII and UTF-8"
I found there are some answer like putting "#encoding:UTF-8" ahead my code, it doesn't work for me
I've tried to put ".force_encoding("utf-8")" after the values in my erb file, it works, but I don't think this is the only way to solve the problem, because I don't want to put ".force_encoding("utf-8")" after all my values.
Ruby version: 2.3.1
redis version:3.0.7
and I am using erb as my templating system.
Thanks in advance!

I have encounter this problem many times. It runs pretty well on my localhost (MacOS) and found to have problem on the server(Debian). It is possibly because your server is using a different encoding setting.
You may want to change the encoding and restart your server.
Reference:
https://www.linuxquestions.org/questions/linux-newbie-8/how-to-change-the-default-encoding-203988/

Related

odoo.sh ver. 14 WKHTMLTOPDF 0.12.25: Unable to call host printing service (HTTPError). How to circumvent this?

We're using odoo.sh platform with odoo14. The installed wkhtmltopdf is wkhtmltopdf_paas_wrapper 0.12.5, we can't upgrade to 0.12.6 because the access is very limited we cant use 'sudo' to apt-install. To temporarily solve this, we decided to use the 0.12.5 version. But it returns "Unable to call host printing service (HTTPError)" even with the right arguments. I've already tried it with the staging and production server, but still the same result. The ticket I've sent hasn't been replied to yet. This is so frustrating, I'm going bonkers...please help.
here's a screenshot:
ps: unrecognized argument error was intentional so I can display the available args. I've also crossed out the project domain. Thank you
Apparently, to properly execute the package, it should not have been "wkhtmltopdf" but instead "wkhtmltopdf.bin". I've overridden the ir_actions_report.py to change the package name. Here's the snippet of the original source code:
They shouldve known better, its a paid platform.

ACR1222L and Ruby smartcard gem

I'm trying to make a ACR1222L work with this ruby script that I found on github.
The script is made for the older ACR122U, but in my research I've seen that they both should be pretty similar.
My problem is when trying to run the script, I get this error:
C:\Users\Emil\Desktop>driver.rb
Calibration Time!
Place and leave a tag on the device
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/smartcard-0.5.5/lib/smartcard/pcsc/conte
xt.rb:112:in `wait_for_status_change': (0x100000006) (Smartcard::PCSC::Exception)
from C:/Users/Emil/Desktop/driver.rb:24:in `<main>'
Could it be that the "smartcard" gem used by the script does not support the ACR1222L, or am I simply just missing something?
Hope that someone can help!
The Smartcard::PCSC::Exception error code you get (0x100000006) translates to the Windows API error code INVALID_HANDLE_EXCEPTION (0x00000006). This typically indicates that the context handle used in the API call is invalid. With the smartcard gem, the PS/SC context (SCardEstablishContext) is established through the initializer of Smartcard::PCSC::Context. This operation seems to be successful, otherwise you would get an exception on line 13. The source of the INVALID_HANDLE_EXCEPTION seems to be SCardGetStatusChange (invoked by context.wait_for_status_change).
A possible reason for that call to fail with an INVALID_HANDLE_EXCEPTION could be a mismatch in the handle format, for instance caused by a 32-bit/64-bit mismatch. Thus, I would assume that the smartcard gem is designed for 32-bit only (while your path indicates that you are using a 64-bit version of Ruby).

Twilio script runs locally but not on server?

I've been using twilio's library just fine locally (mac os x with XAMPP), but when I upload it to an amazon ec2 instance, the ability to send sms messages breaks.
$sms = $client->account->sms_messages->create(
"xxx-xxx-xxxx", $users[pnumber], "Testing!");
(the x's are numbers)
The above code seems to be what breaks it. I have uploaded the twilio library to the correct directory. I have also tried enabling all permissions to see if it was a permission issue.
I'm rather inexperienced to running things on my own server. Any guidance, guesses, and tips would be appreciated!
edit: Clarification - by "breaks", I mean the rest of the page does not load. If I add "echo "Hi";", it will not be printed. However, echo-ing before the code above works.
The problem was that I had not installed cURL onto my server yet. It was not included in my php installation. Thanks to Kevin Burke's advice, I ran it in command line and realized that it was calling a non-existant function. Some googling led to me installing curl, which fixed the problem. Thanks Kevin!

EC2 Caching Code and Server Error 500

I started to mess around with the EC2 “Micro Instance” for a new site i’m working on. I put on an ubuntu lamp server and loaded up our favorite php framework and started along the coding path.
One frustrating thing i’m finding is whenever I make a mistake coding (which is rare! j/k), it gives my a “Server Error 500” and won’t display the php error line number or the helpful references to where the mistake might have happened.
Also when ever an error does appear and I try to fix the mistake it will remain the same for a couple of minutes. Its like its caching on my system or something. If I do something like this :
echo "test" //leaving off the semicolon
refresh the browser it comes up with the error. Then when I fix it:
echo "foo"; //corrected
I still get the Server Error 500. Not sure if anyone else has run in to these issues. Maybe its a php.ini configuration, .htaccess configuration (i’m using Paul Irish’s HTML5Boilerplate .htaccess code), or a LAMP configuration issue. Any pointers to where the problem might lie would be a huge help.
Thanks! Steve
this has nothing to do with ec2.
see php error directives in /etc/php5/apache2/php.ini

Is it possible to run locally JRuby on Google App Engine without restarting server on every change?

Unfortunately, GAE requires restart of the server on each code change.
Is it possible to prevent it and have immediate feedback after code save?
Or, can I import Google App Engine's API into my ruby code and run it on Sinatra server? Tried this but it fails on "import com.google.appengine.api" (it doesn't know what 'com' is).
For Sinatra, I use "Rerun" ( http://github.com/alexch/rerun ) which restarts server immediately after a change with minimum wait.
Thanks.
Try http://github.com/rkh/sinatra-reloader
OK, seems like JRuby on Rails doesn't need server restart, Sinatra reloaded/shotgun plugins didn't work well for me.
To run it I copied the files from http://rails-depot.appspot.com/src (the source # http://code.google.com/p/appengine-jruby/source/browse did not contain all the files).

Resources