[#397093] Using binding + set_trace_func to capture execution state — Reginald Tan <lists@...>

Hi guys, I'm interested in building a program that will display the

18 messages 2012/07/03
[#397097] Re: Using binding + set_trace_func to capture execution state — Peter Zotov <whitequark@...> 2012/07/03

Reginald Tan писал 03.07.2012 05:11:

[#397115] Copying Files — "Alex C." <lists@...>

Hi,

17 messages 2012/07/03

[#397165] Green threads in 1.9.* ? — rex goxman <lists@...>

I am new to Ruby. I am somewhat surprised that I was not able to find

56 messages 2012/07/04
[#397224] Re: Green threads in 1.9.* ? — rex goxman <lists@...> 2012/07/05

<<There are definitely many reasons to prefer native threads over green

[#397227] Re: Green threads in 1.9.* ? — Tony Arcieri <tony.arcieri@...> 2012/07/05

On Thu, Jul 5, 2012 at 6:38 AM, rex goxman <lists@ruby-forum.com> wrote:

[#397232] Re: Green threads in 1.9.* ? — rex goxman <lists@...> 2012/07/05

Tony Arcieri wrote in post #1067551:

[#397234] Re: Green threads in 1.9.* ? — Tony Arcieri <tony.arcieri@...> 2012/07/05

On Thu, Jul 5, 2012 at 10:26 AM, rex goxman <lists@ruby-forum.com> wrote:

[#397239] Re: Green threads in 1.9.* ? — rex goxman <lists@...> 2012/07/05

Tony Arcieri wrote in post #1067563:

[#397251] Re: Green threads in 1.9.* ? — Tony Arcieri <tony.arcieri@...> 2012/07/06

On Thu, Jul 5, 2012 at 12:31 PM, rex goxman <lists@ruby-forum.com> wrote:

[#397253] Re: Green threads in 1.9.* ? — rex goxman <lists@...> 2012/07/06

Tony Arcieri wrote in post #1067609:

[#397256] Re: Green threads in 1.9.* ? — Tony Arcieri <tony.arcieri@...> 2012/07/06

On Thu, Jul 5, 2012 at 8:24 PM, rex goxman <lists@ruby-forum.com> wrote:

[#397260] Re: Green threads in 1.9.* ? — Ryan Davis <ryand-ruby@...> 2012/07/06

[#397267] Re: Green threads in 1.9.* ? — Robert Klemme <shortcutter@...> 2012/07/06

On Fri, Jul 6, 2012 at 8:52 AM, Ryan Davis <ryand-ruby@zenspider.com> wrote:

[#397269] Re: Green threads in 1.9.* ? — rex goxman <lists@...> 2012/07/06

Robert Klemme wrote in post #1067663:

[#397185] Insert letters of the alphabet between the original letters of a string — Joao Silva <lists@...>

Hi All.

10 messages 2012/07/04

[#397198] the best way to match these domains. — Eliezer Croitoru <eliezer@...>

thanks in advance i need a bit help to break the ice that my head is in.

18 messages 2012/07/05
[#397202] Re: the best way to match these domains. — Robert Klemme <shortcutter@...> 2012/07/05

On Thu, Jul 5, 2012 at 4:13 AM, Eliezer Croitoru <eliezer@ngtech.co.il> wrote:

[#397245] Re: the best way to match these domains. — Eliezer Croitoru <eliezer@...> 2012/07/05

On 7/5/2012 10:03 AM, Robert Klemme wrote:

[#397258] Re: the best way to match these domains. — Robert Klemme <shortcutter@...> 2012/07/06

On Thu, Jul 5, 2012 at 10:40 PM, Eliezer Croitoru <eliezer@ngtech.co.il> wrote:

[#397316] Re: the best way to match these domains. — Eliezer Croitoru <eliezer@...> 2012/07/07

On 7/6/2012 9:21 AM, Robert Klemme wrote:

[#397415] Re: the best way to match these domains. — Robert Klemme <shortcutter@...> 2012/07/10

On Sat, Jul 7, 2012 at 5:32 AM, Eliezer Croitoru <eliezer@ngtech.co.il> wrote:

[#397464] Re: the best way to match these domains. — Eliezer Croitoru <eliezer@...> 2012/07/11

On 7/10/2012 12:08 PM, Robert Klemme wrote:

[#397416] learning by doing part 2 - tc game — "Sebastjan H." <lists@...>

Hi,

53 messages 2012/07/10
[#397418] Re: learning by doing part 2 - tc game — "Jan E." <lists@...> 2012/07/10

Hi,

[#397419] Re: learning by doing part 2 - tc game — "Sebastjan H." <lists@...> 2012/07/10

Yes, that would be ok, but that means that the player has to create all

[#397421] Re: learning by doing part 2 - tc game — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2012/07/10

On Tue, Jul 10, 2012 at 12:39 PM, Sebastjan H. <lists@ruby-forum.com> wrote:

[#397423] Re: learning by doing part 2 - tc game — "Jan E." <lists@...> 2012/07/10

"Jes=C3=BAs Gabriel y Gal=C3=A1n" <jgabrielygalan@gmail.com> wrote in pos=

[#397424] Re: learning by doing part 2 - tc game — "Sebastjan H." <lists@...> 2012/07/10

Jan E. wrote in post #1068109:

[#397426] Re: learning by doing part 2 - tc game — "Jan E." <lists@...> 2012/07/10

Sebastjan H. wrote in post #1068110:

[#397428] Re: learning by doing part 2 - tc game — "Sebastjan H." <lists@...> 2012/07/10

Jan E. wrote in post #1068114:

[#397429] Re: learning by doing part 2 - tc game — "Jan E." <lists@...> 2012/07/10

Sebastjan H. wrote in post #1068117:

[#397430] Re: learning by doing part 2 - tc game — "Sebastjan H." <lists@...> 2012/07/10

Jan E. wrote in post #1068119:

[#397435] Re: learning by doing part 2 - tc game — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2012/07/10

On Tue, Jul 10, 2012 at 3:18 PM, Sebastjan H. <lists@ruby-forum.com> wrote:

[#397608] undefined method error — deal bitte <lists@...>

rid.database_columns[session_db_array[0]]

17 messages 2012/07/17

[#397685] odd "system" command behaviour with CUI and GUI — Joel Pearson <lists@...>

Windows 7 64-bit, Ruby 1.9.3.

12 messages 2012/07/20

[#397738] Help a blind man getting ruby to work — "Morten T." <lists@...>

Hallo,

14 messages 2012/07/23

[#397806] Help with exercise from Chris Pine's Ruby Book: Sort without using .sort — "James H." <lists@...>

Hello all, I'm a n00b that's just getting into programming.

16 messages 2012/07/25

[#397817] modular exponentation with multiple exponents? — roob noob <lists@...>

I need to do a^b^c^d^e mod f

11 messages 2012/07/25

[#397903] How to test whether a session variable has a particular key — Doug Jolley <lists@...>

Although a session variable behaves like a hash for purposes of setting

11 messages 2012/07/30

Re: the best way to match these domains.

From: Eliezer Croitoru <eliezer@...>
Date: 2012-07-07 03:32:02 UTC
List: ruby-talk #397316
On 7/6/2012 9:21 AM, Robert Klemme wrote:
> On Thu, Jul 5, 2012 at 10:40 PM, Eliezer Croitoru <eliezer@ngtech.co.il> wrote:
<SNIP>
>> i have used greasyspoon as icap server but it's too much for my needs.
>> it takes a lot of memory and cpu for nothing so i started writing my own on
>> ruby and i then found out that i can add some nice features to it.
>
> That sounds fun!
>
it's nice because the main reason was to coordinate two cache proxies 
together.
in order to cache dynamic content (youtube and some others) i needed to 
"fake" request on one proxy and then on the other when requested the 
fake then serv the real one.
so i have used ICAP to get the original url from the first and store it 
in memDB\sql then rewrite a fake url and send it back.
the proxy have explicit rule that direct the fake domain request through 
proxy2 and then proxy2 request the same ICAP server on the url.
the ICAP server will then rewrites the fake url to the original one.

the first cache thinks it gets the fake url and stores it in mem.
the second will get the real one for proxy1.
what i benefit? the dynamic content is stored as a "static" url in cache 
and can be served to other users.



> Well, basically you need a structure of nested Hashes.  Matching would
> start at the TLD and descend to the most specific domain.
>
>> i am thinking of loading some if not all acls into memory and in this case i
>> will need to use it.
>
> That's certainly faster if memory is sufficient for the size of lists
> you want to handle.
>
>> i was thinking about the same idea but it will much more simple for me to
>> store the domain in a full reverse such as "moc.elpmaxe".
>
> Why?
>
> irb(main):020:0> "foo.bar.baz".split(/\./).reverse
> => ["baz", "bar", "foo"]
> irb(main):021:0> "foo.bar.baz".split(/\./).reverse.join('.')
> => "baz.bar.foo"
>
instead of spliting and reversing just one reverse will be lower cpu.
it will give me the same function..

>> i have two objectives i want to achieve:
>> 1. a dstdomain acl like in squid for simple allow\deny.
>> 2. a dstdomain from squidGuard blacklists to block porn spyware and others
>> based on category.
>
> Well, if you make "allow" and "deny" (or only "deny") a category then
> it's just one mechanism. :-)
>
yes indeed it is one mechanism that up and running as we speak.
but the dstdomain and blacklists is not the same...
dstdomain is example.com matches only this domain and not any others but
in blacklists example.com will match also subdomains but not 1example.com.
so i had to add some condition to it.

>> the blacklists are updated via a txt file with only one match domain or
>> domain wildcard per line and i will use it as is.
>> so i will just use:
>> LOAD DATAT INFILE '/tmp/porndoms.txt'
>> INTO TABLE porn (@var1)
>> SET dom= REVERSE(@var1);
>>
>> this is not suppose to be a "readable" field and it's 30MB+ size so i dont
>> really care how it's ordered in the table.
>
> Order in table rarely matters with RDBMS.  It's the indexes which are important.
>
ordered ..as organized .. as stored..
POTATO POTATO

>> about acls that the admin writes in "acltable" this is another story because
>> it's most of the time very sort and must be readable for the admin as a
>> human.
>
> Isn't it more important that the UI presents human readable
> information?  But I agree, readable DB contents helps in debugging
> etc.  That's why I suggested the reversed format based on domains.
>
yes indeed the point is that the UI will present it but as i am not 
writing any UI right now and also because if the admin dont know how to 
work with command line it will be very hard to do something with the 
server in his current state.
the server still has some exceptions here and there that i have found.
and speak of the devil: if i want to log ruby exceptions into a specific 
file. do yo now a thing about it?

>> i heard this podcast about programing and this guy said "it's better to have
>> code that works and then improve it then not having code at all"
>
> I'd be careful with that.  That philosophy only works for small
> systems where it is easy to do a major rewrite.  In other cases it
> might bring you into a situation where you are stuck with an
> architecture that does not fit the needs.
>
> Cheers
>
> robert
>
well this is the reason i am trying to:
1. make it more modular by using methods that can be changed easily
2. thing about efficiency.
3. consult with others.

for now there is one guy that requested me for that ACL of deny\allow 
per ldap group policy.
so my main goals now are:
1. fix bugs to make it bug free( i have some that i know of and might 
have others that i dont ).
2. add a more accurate url match filtering then just host\domain.
3. add user\ip db integration for future filtering\acl capabilities.
4. improve the filtering based on categories\level.
5. add a form that will allow a user to report a false-positive to the 
admin.
6. add a "user custom allowed\denied domains\urls list".
7. create a category option for the "custom allowed\denied domains\urls" 
so a user\admin can add to a user specific allowed categories.
for the above option i must really think more before implementing the 
filtering acls as levels or categories etc..
8. content auditor module
( i had in mind to add an option of "content inspector\inspecting\auditing".
what i mean is to add a feature that will log requests 
urls\domains\pages on a db so some human inspection on the content later 
can be done.
so in environment like small isp\office that want to build his own 
blacklists\categories based on users browsing experience\habits the 
"content auditor" will get the list from the the DB somehow. )
9. live urls\domains access statistics on a DB for admins.
(squid has logs but not live statistics)

i had just one simple goal and it became more then just that and i'm 
happy for that.

any ideas on the subjects?

Eliezer

-- 
Eliezer Croitoru
https://www1.ngtech.co.il
IT consulting for Nonprofit organizations
eliezer <at> ngtech.co.il



In This Thread