Pages:
Author

Topic: Lifelong Programmer Looking For Work (See what I can do) - page 2. (Read 2659 times)

member
Activity: 111
Merit: 101
The BCT forum scraper. (This is just beta code, but it works)
Code:

#!/usr/bin/perl
use LWP::UserAgent;
use DBI;

open(my $fh, '>>', 'errorlog') or die ("Could not open file 'errorlog' $!");
open(my $logs, '>>', 'logs') or die ("Could not open file 'logs' $!");
my $db = DBI-> connect("dbi:SQLite:/usersdb") || die ("Can't open database");
my $URL = "";
my @html; #The HTML will be saved here
my $reply = "";
##Start

my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 1 });
my $res = $ua->get("https://bitcointalk.org/index.php");
($today) = $res->decoded_content =~ /(\w+ \d{1,2}, \d{4},) [0-9][0-9]:[0-9][0-9]:[0-9][0-9] (?:AM|PM)<\/span>/s;


my $ref = $db->selectall_arrayref( "SELECT bttid FROM accounts WHERE bttid <> ''" ); #return an array reference to an array of all the user ids to watch.
my @ress = @$ref; #redundant but I like it for readability.
 foreach( @ress ) {
  foreach $i (0..$#$_) { #Loops through the current array, in this case just the ID.
   print $logs "$_->[$i] is the current ID.\n";
   &loadHTML($_->[$i]);
   &parseHTML();
   `sleep 1`;
 }
}
print $reply;
close $fh;
close $logs;
exit(0); ##Done

sub parseHTML() {
 my (@quoted, @content, @date, @name, @post);
 @content = @date = @name = @post = ('','','','','');
 my $s = 32; #This variable is the line to start at that contains the first comment info.

 ($user) = ($html[4] =~ /Latest posts of:  (.+)<\/title>/); #Line 5 contains the username of the Uid. ( $html[0] is line 1 ).<br /> ($nposts) = ($html[19] =~ /.*?(\d+)<\/a>\s$/); #Line 20 contains the number of pages, each page has 5 posts except maybe the last.<br /> print $logs "The BTT username you are looking up is $user\n";<br /> #print $logs "That user has $nposts pages which is about " . 5*$nposts . " posts.\n";<br /><br /> for (my $i=0; $i <= 4; $i++){<br />  ($post[$i], $name[$i]) = ($html[$s] =~ /.*<a href="(.*?)" rel="nofollow" target="_blank">(.*)<\/a>$/); $s+=3; #Extract URL/Name of comment, then increment line by 3 for date.<br />  ($date[$i]) = ($html[$s] =~ /on: (.*)/); $s+=5; #Date for above is 3 lines after, then increment by 5 for the post body.<br />  $date[$i] =~ s/<b>Today<\/b> at/$today/;<br />  #print $logs "$i:  $name[$i] - $post[$i] ( $date[$i] ).\n"; <br />  ($quoted[$i]) = ($html[$s] =~ /Quote from: (.+?) on ([A-Z]|<)/); #Check if the post is quoting another. If so this will be the default recipient.<br />  if ($quoted[$i]) { ($content[$i]) = ($html[$s] =~ /.*<\/div><br \/>(.*)<\/div>$/); }<br />  else { ($content[$i]) = ($html[$s] =~ /.*<div class="post">(.*)<\/div>$/); }<br />  $s+=20; #The above contains the post body and possible quoted user. Now increment 20 lines for next URL/Name of comment.  <br />  unless ($quoted[$i]) { $quoted[$i] = "nobody"; }<br />  $content[$i] =~ s/(<br \/>)/ /g;<br />  $content[$i] =~ s/(<[^>]*>)//g;<br />  #print $logs "Quoting($quoted[$i]), Body[$i]:  \"$content[$i]\"\n";<br />  if (&isProcessedPost($user, $date[$i])) { return; }<br />  if ($amount = &isMarking($content[$i])) { &ProcessMarking($user, $quoted[$i], $content[$i], $amount, $post[$i]); }<br /> }<br />}<br /><br />sub ProcessMarking() {<br /> my ($potentialSender, $potentialRecipient, $body, $sendAmount, $plink) = @_;<br /> my ($reason, $precipient, $newAmountS, $newAmountR, $balanceS, $balanceR, $idS, $idR, $sender, $recipient);<br /> ##Set recipient<br /> ($precipient) = $body =~ /(?:\s|\A)@"(.*?)"(?:\s|\Z|\z)/g;<br /> ($precipient) = $body =~ /(?:\s|\A)@(\S*)(?:\s|\Z|\z)/g unless ($precipient);<br /> if (!$precipient && ($potentialRecipient eq 'nobody')) { print $fh "Error marking detected by $user but no recipient can be established!\n"; exit(0); }<br /> if ($precipient && $potentialRecipient eq 'nobody') { $potentialRecipient = $precipient; }<br /> ##Set the reason<br /> ($reason) = $body =~ /^(.*)?;/;<br /> ($reason) = $body =~ /^(.{1,512})/ unless ($reason);<br /> ##Send out the information to the database<br /> $reason =~ s/"/"/g;<br /> $reason =~ s/'/'/g;<br /> $reason =~ s/>/>/g;<br /> $reason =~ s/</</g;<br /> $potentialSender = (lc($potentialSender) . "\@btt");<br /> $potentialRecipient = (lc($potentialRecipient) . "\@btt");<br /><br /> my @arr;<br /> my $sth = $db->prepare('SELECT * FROM accounts WHERE bttname = ?'); $sth->execute($potentialSender); @arr = $sth->fetchrow_array;<br /> if (@arr) {<br />  $balanceS = $arr[1]; $idS = $arr[3]; $sender = $potentialSender;<br />  $newAmountS = $balanceS - $sendAmount;<br />  if ($newAmountS >= 0) {<br />   my $sth = $db->prepare('SELECT * FROM accounts WHERE bttname = ?'); $sth->execute($potentialRecipient); @arr = $sth->fetchrow_array;<br />   if (@arr) {<br />    $balanceR = $arr[1]; $idR = $arr[3]; $recipient = $potentialRecipient;<br />    $newAmountR = $balanceR + $sendAmount;<br />    print $logs "Calling recordTransacion with ($sender, $recipient, $newAmountS, $newAmountR, $reason, $plink)\n";<br />    &recordTransaction($sender, $recipient, $newAmountS, $newAmountR, $reason, $sendAmount, $plink);<br />   } else {<br />    my $potentialRecipientStripped = ($potentialRecipient =~ s/\@btt$//r);<br />    #print $potentialRecipientStripped;<br />    $sth = $db->prepare('SELECT id FROM allUsers WHERE LOWER(name) = ?'); $sth->execute($potentialRecipientStripped); @arr = $sth->fetchrow_array;<br />    if (@arr) {<br />     #print @arr;<br />     $recipient = $potentialRecipient; $idR = $arr[0];<br />     $sth = $db->prepare("INSERT INTO accounts VALUES ( \"\", \"0\", \"$potentialRecipient\", \"$arr[0]\" )"); $sth->execute();<br />     $newAmountR = $sendAmount;<br />     print $logs "Calling recordTransacion with ($sender, $recipient, $newAmountS, $newAmountR, $reason, $plink)\n";<br />     &recordTransaction($sender, $recipient, $newAmountS, $newAmountR, $reason, $sendAmount, $plink);<br />    } else { print $fh "Could not load $potentialRecipient ID attempted amount was $sendAmount\n";  }<br />   }<br />  } else { print $fh "$sender, sorry not enough funds.\n"; }<br /> } else { print $fh "$sender, marking detected but user has no account.\n"; }<br />}<br /><br />sub recordTransaction() {<br /> my ($sender, $recipient, $newAmountS, $newAmountR, $reason, $sendAmount, $plink) = @_;<br />  $sth = $db->prepare("INSERT INTO transactions VALUES ( \"$sender\", \"$recipient\", \"$sendAmount\", \"$reason\" )"); $sth->execute();<br />  if ($sender ne $recipient) {<br />   $sth = $db->prepare("UPDATE accounts SET balance = \"$newAmountS\" WHERE bttname = \"$sender\""); $sth->execute();<br />   $sth = $db->prepare("UPDATE accounts SET balance = \"$newAmountR\" WHERE bttname = \"$recipient\""); $sth->execute();<br />   $reply .= "$sender awarded $sendAmount₥ to $recipient. ( $plink )\n";<br />  } else {<br />    $reply .= "$sender awarded $sendAmount₥ to themselves. ( $plink )\n";<br />  }<br />}<br /><br />sub isMarking() {<br /> my $body = shift;<br /> my $amount;<br /> ($amount) = $body =~ /(?:\s|\A)[+]([1-9][0-9]*)(?:\s|\Z|\.|!|\?)/;  #Regex to check if the post is a marking<br /> return $amount;<br />}<br /><br />sub isProcessedPost() {<br /> my ($postAcnt, $postDate) = @_;<br /> my $sth = $db->prepare('SELECT name, time FROM processedPosts WHERE name = ? AND time = ?');<br /> $sth->execute($postAcnt, $postDate);<br /> my @arr = $sth->fetchrow_array;<br /> if (@arr) { return 1; } #The transaction has already been processed so return.<br /> else {<br />  $db->do( "INSERT INTO processedPosts VALUES ( \"$postAcnt\", \"$postDate\" ) " ); #The transaction has not been processed, so add it to the processed lists since it wil be processed after.<br />  return 0;<br /> }<br />}<br /><br />sub loadHTML() {<br /> $Uid = shift;<br /> $URL = "https://bitcointalk.org/index.php?action=profile;u=" . $Uid . ";sa=showPosts;wap2;start=0";<br /> my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 1 });<br /> my $res = $ua->get($URL);<br /> @html = split(/\n/, $res->decoded_content);<br />}<br /><br /></pre></div> </div> </div> </div> </div> <div class="item clearfix"> <div class="item-content"> <div class="user-data"> <div class="username"> <a href="/user/leathan-369031" title="Profile of leathan">leathan</a> </div> <div class="position">member</div> <div class="position-coins"> <img src="/images/user_position/star.gif" alt=""> <img src="/images/user_position/star.gif" alt=""> </div> <div class="activity">Activity: 111</div> <div class="merit">Merit: 101</div> <div class="avatar"> <img src="https://bitcointalk.org/useravatars/avatar_369031.jpg" alt="" title="Profile photo of leathan"> </div> <div class="description"></div> <div class="view-profile"> <a href="/user/leathan-369031" title="Profile of leathan"><img src="/images/profile_sm.gif" alt=""></a> </div> </div> <div class="message-data"> <div class="header clearfix"> <div class="icon"> <img src="/images/xx.gif" alt=""> </div> <div class="title-wrapper"> <div class="title"> <a name="msg9572288"></a> <a href="/topic/m.9572288">Re: Lifelong Programmer Looking For Work (See what I can do)</a> </div> <div class="date">November 17, 2014, 12:43:43 PM</div> </div> <div class="item-number text-right"> <a href="/topic/m.9572288">#6</a> </div> </div> <div class="content"> Poloniex trading API wrapper.<br /><br /><div class="codeheader">Code:</div><div class="code"><pre style="margin-top: 0; display: inline;"><br />package Poloniex;<br />use Time::HiRes qw(time);<br />use POSIX qw(strftime);<br />use PHP::HTTPBuildQuery qw(http_build_query);<br />use Digest::SHA qw(hmac_sha512_hex);<br />use LWP::UserAgent;<br />use JSON::XS;<br />use WWW::Curl::Easy;<br />use Test::JSON;<br />use Scalar::Util 'blessed';<br /><br />sub new {<br /> my $class = shift;<br /> my ( $api_key, $api_secret ) = @_;<br /> $self = bless {<br />  api_key => $api_key,<br />  api_secret => $api_secret,<br />  trading_url => "https://poloniex.com/tradingApi",<br />  public_url => "https://poloniex.com/public",<br /> }, $class;<br /> return $self;<br />}<br /><br />sub query {<br /> my $self = shift;<br /> my %req = %{$_[0]};<br /><br /> # API unique settings<br /> my $key = $self->{api_key};<br /> my $secret = $self->{api_secret};<br /><br /> # Generate a nonce to avoid problems with 32bit systems<br /> $req{'nonce'} = time() =~ s/\.//r;<br /> my $data = \%req;<br /><br /> # Generate the POST data string<br /> my $post_data = http_build_query($data, '', '&');<br /> my $sign = hmac_sha512_hex($post_data, $secret);<br /><br /> # Generate headers to prove settings<br /> my @headers = ("Key: $key", "Sign: $sign",);<br /><br /> #Set up browser<br /> my $curl = WWW::Curl::Easy->new;<br /> $curl->setopt( CURLOPT_RETURNTRANSFER, true );<br /> $curl->setopt( CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; Poloniex Perl bot)' );<br /> $curl->setopt( CURLOPT_URL, $self->{trading_url} );<br /> $curl->setopt( CURLOPT_POSTFIELDS, $post_data );<br /> $curl->setopt( CURLOPT_HTTPHEADER, \@headers );<br /> $curl->setopt( CURLOPT_SSL_VERIFYPEER, FALSE );<br /> my $response_body;<br /> $curl->setopt( CURLOPT_WRITEDATA, \$response_body );<br /><br /> # Send request<br /> my $retcode = $curl->perform;<br /> if ($retcode == 0) {<br />  # judge result and next action based on $response_code<br />  my $response_code = $curl->getinfo(CURLINFO_HTTP_CODE);<br />  if ($dec = JSON::XS::decode_json($response_body)) {<br />   if (ref($dec) eq "HASH") { return %{  $dec  }; } else { return  @{  $dec  }; }<br />  } else { return false; }<br /> }<br /> # Error code, type of error, error message<br /> die "An error happened: $retcode ".$curl->strerror($retcode)." ".$curl->errbuf."\n";<br /> return false;<br />}<br /><br />sub retrieveJSON {<br /> $self = shift;<br /> my $URL = shift;<br /> my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 1 });<br /> my $res = $ua->get($URL);<br /> my $records = $res->decoded_content;<br /> my $json = JSON::XS::decode_json($records);<br /> return $json;<br />}<br /><br />sub get_ticker {<br /> $self = shift; my $pair = shift;<br /> $prices = $self->retrieveJSON($self->{public_url} . '?command=returnTicker');<br /> if (!$pair || ($pair eq "ALL")) { return %{$prices}; } # Dereference the hash reference<br /> else {<br />  $pair = uc($pair);<br />  if ($prices->{$pair}) { return %{$prices->{$pair}}; } else { return {}; } # Dereference the hash reference or return empty anon hash<br /> }<br />}<br /><br />sub get_trade_history {<br /> $self = shift; my $pair = shift;<br /> $trades = $self->retrieveJSON($self->{public_url} . '?command=returnTradeHistory¤cyPair=' . uc($pair));<br /> return @{$trades};<br />}<br /><br /><br />sub get_order_book {<br /> $self = shift; my $pair = shift;<br /> $orders = $self->retrieveJSON($self->{public_url} . '?command=returnOrderBook¤cyPair=' . uc($pair));<br /> return %{$orders};<br />}<br /><br />sub get_volume() {<br /> $self = shift; my $volume = shift;<br /> $volume = $self->retrieveJSON($self->{public_url} . '?command=return24hVolume');<br /> return %{$volume};<br />}<br /><br />sub get_trading_pairs() {<br /> $self = shift;<br /> $tickers = $self->retrieveJSON($self->{public_url} . '?command=returnTicker');<br /> return keys($tickers);<br />}<br /><br /><br />sub get_balances() {<br /> $self = shift;<br /> return $self->query(<br />  {<br />   command => 'returnBalances'<br />  }<br /> );<br />}<br /><br /><br />sub get_open_orders() { # Returns array of open order hashes<br /> $self = shift; $pair = shift;<br /> return $self->query(<br />  {<br />   'command' => 'returnOpenOrders',<br />   'currencyPair' => uc($pair)<br />  }<br /> );<br />}<br /><br />sub get_my_trade_history() {<br /> $self = shift; $pair = shift;<br /> return $self->query(<br />  array(<br />   'command' => 'returnTradeHistory',<br />   'currencyPair' => uc($pair)<br />  )<br /> );<br />}<br /><br /><br />sub buy() {<br /> my $self = shift; my $pair = shift; my $rate = shift; my $amount = shift;<br /> return $self->query(<br />  {<br />   'command' => 'buy',<br />   'currencyPair' => uc($pair),<br />   'rate' => $rate,<br />   'amount' => $amount<br />  }<br /> );<br />}<br /><br />sub sell() {<br /> $self = shift; my $pair = shift; my $rate = shift; my $amount = shift;<br /> return $self->query(<br />  {<br />   'command' => 'sell',<br />   'currencyPair' => uc($pair),<br />   'rate' => $rate,<br />   'amount' => $amount<br />  }<br /> );<br />}<br /><br />sub cancel_order() {<br /> $self = shift; my $pair = shift; my $order_number = shift;<br /> return $self->query(<br />  {<br />   'command' => 'cancelOrder',<br />   'currencyPair' => uc($pair),<br />   'orderNumber' => $order_number<br />  }<br /> );<br />}<br /><br />sub withdraw() {<br /> $self = shift; my $currency = shift; my $amount = shift; my $address = shift;<br /> return $self->query(<br />  {<br />   'command' => 'withdraw',<br />   'currency' => uc($currency),<br />   'amount' => $amount,<br />   'address' => $address<br />  }<br /> );<br />}<br /><br /><br />sub public_url {<br /> my $self = shift;<br /> if (@_) {<br />  $self->{public_url} = shift;<br /> }<br /> return $self->{public_url};<br />}<br /><br /><br /><br />1;<br /><br /></pre></div><br />P.S. The reason I have not yet submitted this API to Poloniex is because I wanted to clean up some of the dependancies. </div> </div> </div> </div> <div class="item clearfix"> <div class="item-content"> <div class="user-data"> <div class="username"> <a href="/user/leathan-369031" title="Profile of leathan">leathan</a> </div> <div class="position">member</div> <div class="position-coins"> <img src="/images/user_position/star.gif" alt=""> <img src="/images/user_position/star.gif" alt=""> </div> <div class="activity">Activity: 111</div> <div class="merit">Merit: 101</div> <div class="avatar"> <img src="https://bitcointalk.org/useravatars/avatar_369031.jpg" alt="" title="Profile photo of leathan"> </div> <div class="description"></div> <div class="view-profile"> <a href="/user/leathan-369031" title="Profile of leathan"><img src="/images/profile_sm.gif" alt=""></a> </div> </div> <div class="message-data"> <div class="header clearfix"> <div class="icon"> <img src="/images/xx.gif" alt=""> </div> <div class="title-wrapper"> <div class="title"> <a name="msg9566063"></a> <a href="/topic/m.9566063">Re: Lifelong Programmer Looking For Work (See what I can do)</a> </div> <div class="date">November 16, 2014, 09:25:38 PM</div> </div> <div class="item-number text-right"> <a href="/topic/m.9566063">#5</a> </div> </div> <div class="content"> <a class="ul" href="http://bitmarknews.com/2014/11/04/current-bitmark-development-part-three/" rel="nofollow" target="_blank">http://bitmarknews.com/2014/11/04/current-bitmark-development-part-three/</a><br /><br />Tomorrow I will upload a Perl API wrapper I made which allows one to programatically trade on poloniex exchange, and I will upload the scraper i made that scans bct forums. (They have no front end)<br /><br />I am working on <a class="ul" href="http://bitmarking.net" rel="nofollow" target="_blank">http://bitmarking.net</a> & <a class="ul" href="http://bitmarking.net/wallet/" rel="nofollow" target="_blank">http://bitmarking.net/wallet/</a> right now but the front end is only 5% of the codebase. Also I am the only administrator on that box. And i am very sad to say that i havnt worked much on it because i am wasting so much time finding a job... Also i have hacked primitive markings into some of links on bitmarking.net but i have yet to deploy it.<br /><br /><br />Also I am not totally self taught.. I honestly cannot remember a time i didnt understand atleast some form of code, my father started trying to teach me binary since a baby and didnt stop untill i learned.<br /><br />If you still want some non current examples of stuff ive made let me know...<br /><br />I can dig up some old code of some crappy chatrooms or crappy forums that i made from the bottom up and the only reason its crappy is because once i had a working model i wanted to go and do something else.<br /><br />Let me know.. I can dig up lots of random stuff like the IRC server i cross compiled for the android phone.. or some cool configuration hacks ive done.... <br /><br />Or you can just post here and ask for some quick regexp?<br /><br />Or you can ask for a quick bash script? perl script? website? cool css? cool js? Not sure.. .  .<br /><br /><br />Yes after ~17 yrs of being involved in code i ended up using lots of languages. however this actually severely hinders the fluency at which i can write any one language, but at the same time it has massively helped my ability to read random languages and through extrapolation debug them.<br /><br /><br />P.S. sorry for the snarky college remark but i get quiet frustrated when people want a college degree... ESPECIALLY when the only jobs i seem to find that pay are people hiring me to do there college homework... not kidding.... And i get further maddened when the college work they have me do is java... i hate java lol... also like i said when i turned 18 i stopped and started researching trading and reading documentations on my free time instead of coding. So 7 years later much of my work is simply lost... i am beyond depressed about it... in fact one piece of code I made was a 2.7gb robot capable of both attacking and defending servers all on his own. At the time i was just having fun.. fun coding like it was a video game... now i wish i had thought of the future and made more backups because all the backups i had are dead <img src="https://bitcointalk.org/Smileys/default/sad.gif" alt="Sad" border="0" /> but enough digging and you will see that a so called AxE BoT existed and even helped defend Clan TDA channel. (Clan TDA founded Dota which turned into the most played genre of games on the planet) Furthermore atleast 2/3 of my codebase is anon, and if it was not for poverty that number would be 1/1.<br /><br /> </div> </div> </div> </div> <div class="item clearfix"> <div class="item-content"> <div class="user-data"> <div class="username"> <a href="/user/thompete-340169" title="Profile of thompete">thompete</a> </div> <div class="position">full member</div> <div class="position-coins"> <img src="/images/user_position/star.gif" alt=""> <img src="/images/user_position/star.gif" alt=""> <img src="/images/user_position/star.gif" alt=""> </div> <div class="activity">Activity: 224</div> <div class="merit">Merit: 100</div> <div class="avatar"> </div> <div class="description"></div> <div class="view-profile"> <a href="/user/thompete-340169" title="Profile of thompete"><img src="/images/profile_sm.gif" alt=""></a> </div> </div> <div class="message-data"> <div class="header clearfix"> <div class="icon"> <img src="/images/xx.gif" alt=""> </div> <div class="title-wrapper"> <div class="title"> <a name="msg9559208"></a> <a href="/topic/m.9559208">Re: Lifelong Programmer Looking For Work (See what I can do)</a> </div> <div class="date">November 16, 2014, 05:34:23 AM</div> </div> <div class="item-number text-right"> <a href="/topic/m.9559208">#4</a> </div> </div> <div class="content"> Thats a lot of languages. Is there any project you are currently working on? Can, you show us some examples? </div> </div> </div> </div> <div class="item clearfix"> <div class="item-content"> <div class="user-data"> <div class="username"> <a href="/user/wendigo-163375" title="Profile of Wendigo">Wendigo</a> </div> <div class="position">legendary</div> <div class="position-coins"> <img src="/images/user_position/legendary.gif" alt="" title="Legendary level"> </div> <div class="activity">Activity: 2604</div> <div class="merit">Merit: 1036</div> <div class="avatar"> <img src="https://bitcointalk.org/useravatars/avatar_163375.jpg" alt="" title="Profile photo of Wendigo"> </div> <div class="description"></div> <div class="view-profile"> <a href="/user/wendigo-163375" title="Profile of Wendigo"><img src="/images/profile_sm.gif" alt=""></a> </div> </div> <div class="message-data"> <div class="header clearfix"> <div class="icon"> <img src="/images/xx.gif" alt=""> </div> <div class="title-wrapper"> <div class="title"> <a name="msg9559082"></a> <a href="/topic/m.9559082">Re: Lifelong Programmer Looking For Work (See what I can do)</a> </div> <div class="date">November 16, 2014, 05:08:30 AM</div> </div> <div class="item-number text-right"> <a href="/topic/m.9559082">#3</a> </div> </div> <div class="content"> I read the whole post and didn't seem to find whether or not you have a university degree in IT or just self-taught? </div> </div> </div> </div> <div class="item clearfix"> <div class="item-content"> <div class="user-data"> <div class="username"> <a href="/user/leathan-369031" title="Profile of leathan">leathan</a> </div> <div class="position">member</div> <div class="position-coins"> <img src="/images/user_position/star.gif" alt=""> <img src="/images/user_position/star.gif" alt=""> </div> <div class="activity">Activity: 111</div> <div class="merit">Merit: 101</div> <div class="avatar"> <img src="https://bitcointalk.org/useravatars/avatar_369031.jpg" alt="" title="Profile photo of leathan"> </div> <div class="description"></div> <div class="view-profile"> <a href="/user/leathan-369031" title="Profile of leathan"><img src="/images/profile_sm.gif" alt=""></a> </div> </div> <div class="message-data"> <div class="header clearfix"> <div class="icon"> <img src="/images/xx.gif" alt=""> </div> <div class="title-wrapper"> <div class="title"> <a name="msg9557237"></a> <a href="/topic/m.9557237">Re: Lifelong Programmer Looking For Work (See what I can do)</a> </div> <div class="date">November 15, 2014, 10:19:19 PM</div> </div> <div class="item-number text-right"> <a href="/topic/m.9557237">#2</a> </div> </div> <div class="content"> .......... .     .    <br /><br />Slow down ppl, I can't work for everyone at once!!! =P </div> </div> </div> </div> <div class="item clearfix"> <div class="item-content"> <div class="user-data"> <div class="username"> <a href="/user/leathan-369031" title="Profile of leathan">leathan</a> </div> <div class="position">member</div> <div class="position-coins"> <img src="/images/user_position/star.gif" alt=""> <img src="/images/user_position/star.gif" alt=""> </div> <div class="activity">Activity: 111</div> <div class="merit">Merit: 101</div> <div class="avatar"> <img src="https://bitcointalk.org/useravatars/avatar_369031.jpg" alt="" title="Profile photo of leathan"> </div> <div class="description"></div> <div class="view-profile"> <a href="/user/leathan-369031" title="Profile of leathan"><img src="/images/profile_sm.gif" alt=""></a> </div> </div> <div class="message-data"> <div class="header clearfix"> <div class="icon"> <img src="/images/xx.gif" alt=""> </div> <div class="title-wrapper"> <div class="title"> <a name="msg9555709"></a> <a href="/topic/m.9555709">Re: Lifelong Programmer Looking For Work (See what I can do)</a> </div> <div class="date">November 15, 2014, 05:46:00 PM</div> </div> <div class="item-number text-right"> <a href="/topic/m.9555709">#1</a> </div> </div> <div class="content"> <b>If you want a resume just ask...</b><br /><br /><br />EDIT: <span style="font-size: 15pt !important; line-height: 1.3em;">(PLEASE READ)</span>: People keep messaging me "can you..." but the answer is always yes. Guys I have programmed since I was 8. I can program anything (with enough time). No one seems to read that I am looking for a monthly wage. I <b>am</b> looking for a monthly wage. I do not want to just do a quick gig for money because of all the problems that have come up in the past. lack of pay, unseen complications (that i dont get paid for), etc... Im not against quick gigs they are the only form of coding work ive ever really done... I just dont want to keep doing them. I want a relationship between the employer (you) and the employee (me). If you have a budget it is also in your benefit to have this relationship. If you have a quick gig that can turn into many quick gigs and you have a budget let me know. <br /><br /><div align="center"><b><span style="font-size: 10pt !important; line-height: 1.3em;"><span style="color: green;">--- LANGUAGES IVE USED ---</span></span></b><br /><i>Ordered most to least & I'm sure I missed some...</i><br /><br /><ul style="margin-top: 0; margin-bottom: 0;"><li>Regular Expressions</li><li>Perl</li><li>Sh</li><li>Bash</li><li>VB6.0</li><li>BASIC</li><li>PASCAL</li><li>8 bit ASSEMBLY/BINARY</li><li>Php</li><li>ECMAscripts [Javascript]</li><li>Python</li><li>HTML[5]</li><li>CSS</li><li>SQL [SQLite, POSGRESQL, mySQL]</li><li>ASP</li><li>C</li><li>VB.NET</li><li>Java (PCRE <img src="https://bitcointalk.org/Smileys/default/wink.gif" alt="Wink" border="0" />)</li></ul><br /><br /><br /><b><span style="font-size: 10pt !important; line-height: 1.3em;"><span style="color: green;">--- THING I CAN DO FOR CRYPTO ---</span></span></b><br /><i>Im sure I'm missed a whole bunch</i><br /><br /><ul style="margin-top: 0; margin-bottom: 0;"><li>Kernal optimisations / upgrades</li><li>Datascraping</li><li>Databasing</li><li>Tipping Bots on any medium (twtr, fb, goog, irc, slack, email, etc...)</li><li>Create Pool</li><li>Create Blockchain Explorer</li><li>Create Coin (Im not doing this, not even for $)</li><li>Create Forum</li><li>Create IRC network</li><li>Create faucets (even complicated game/gambling ones)</li><li>Create Wiki</li><li>Create other websites</li><li>Create other back end scripts</li><li>Create front end stuff/scripts</li><li>Help market thru coded bots</li><li>Secure/Update/Configure/Install Servers.</li><li>Create crazy interesting algorithms</li><li>Beta Test and Debugging</li></ul><br /><br /><br /><br /><span style="font-size: 10pt !important; line-height: 1.3em;"><b><span style="color: green;">--- THINGS I WONT DO ---</span></b></span><br /><br /><ul style="margin-top: 0; margin-bottom: 0;"><li>Anything that (within reason) indirectly benefits AAPL.</li><li>Anything that (within reason) indirectly benefits MSFT. (Unless you have alot of $$$)</li></ul><br /><br /><br /><b><span style="font-size: 10pt !important; line-height: 1.3em;"><span style="color: green;">--- WHAT I WANT ---</span></span></b><br /><br />Monthly salary<br /><br /><br /><br /><span style="font-size: 10pt !important; line-height: 1.3em;"><b><span style="color: green;">--- WHO AM I? ---</span></b></span></div><br />I am Horacio Spinelli, I am argentinian but as you can see I also speak english. Most of my code is purposely anonymous, because they are whom i pledge my loyalties too and nothing can change that. But I have hundreds of examples of scripts I've written. I got interested in programming since my first memories (~8yrs old) where my father taught me boolean logic and how computers use it practically. I stopped programming almost entirely when I turned 18 because of litigation(laws), poverty, and loss of desire due to the formers. I am 25 years old now and i have spent the last 5 years reading programming documentations and economic text (specifically with regards to trading/code). I got into crypto as a result of those readings ~2 months ago. And instantly wanted to learn more. <br /><br />I ended up in the irc channel of BTCD and offered to program just cause. I regrettably learned that the current devs of BTCD are far more brilliant than i am with respect to the C/C++ programming languages and most of the scripting was done. I have not programmed in C since I was 12 years old and never in C++. Furthermore programming languages are like spoken languages in the sense that you must use daily to retain your knowledge of them. I then landed in the irc channel of BTM where I learned that alot of work could be done not within the core itself but with the scripts that compliment the core. Scripting is what I did till I was 18 and I continued to do in very small Regular Expression doses. Plus I contribute towards their documentations in the form of text to this day. Anyway the point is what i learned struck me so powerfully that I turned the tables over instantly. I vowed to return to programming just from the fact i had obtained a VPS from mark. So I started to code (mainly read/plan/discus)... and in only ~1 month i did many things... if you want to know them all just ask.. I want to keep this bio short and most of my work isnt done. Or even started... I intend on helping SuperNET with many scripts for example that are still in the idea/planning stage.<br /><br />But just to name a few things I did...<br />I managed to build a text based robot capable of scraping various things (currently 5). One of them is BitcoinTalk Markings. Which essentially means you can provide a small microtransaction via +ing someone's posts. You can see this reflected on a primitive (still centralized) ledger <a class="ul" href="http://bitmarking.net/cgi-bin/x.cgi" rel="nofollow" target="_blank">http://bitmarking.net/cgi-bin/x.cgi</a>. Like I said the former is all stuff i just started (~3 days work on the back end) so dont expect it to atually <i>work</i> well (for example names with spaces arnt fully supported yet). but other than that it actually works quite decently.<br /><br /><br />I also managed to launch around 12 websites on 3 domains and 9 subdomains.<br /><br /><br /><br />P.S. DISCLAIMER: I accidentally quasi-affiliated myself with a coin called pow that i expect to be dead shortly and I want everyone to know that I am not and never was a founder of that coin. I made no money off it and i gave away 100% of my holdings. </div> </div> </div> </div> </div> <div class="pagination-wrapper"> <span class="pages-text ">Pages:</span> <ul class="pagination"><li class="prev"><a href="/topic/lifelong-programmer-looking-for-work-see-what-i-can-do-858801" data-page="0">«</a></li> <li><a href="/topic/lifelong-programmer-looking-for-work-see-what-i-can-do-858801" data-page="0">1</a></li> <li class="active"><a href="/topic/lifelong-programmer-looking-for-work-see-what-i-can-do-858801/2-page.html" data-page="1">2</a></li> <li class="next disabled"><span>»</span></li></ul> </div></div> </div> <div class="breadcrumbs"><a href="/" title="Home">Bitcoin Forum</a><span>></span><a href="/economy-1000000003" title="Economy category">Economy</a><span>></span><a href="/marketplace-5" title="Marketplace category">Marketplace</a><span>></span><a href="/services-52" title="Services category">Services</a></div> <div class="jump-to pull-right"> <div class="inner"> <div class="content text-right"> <div class="text">Jump to: </div> <form id="jump-to-form" class="jump-to-form-class" action="/forum/default/jump-to-category" method="post"> <input type="hidden" name="_csrf-frontend" value="vncGDC2w_kpaJxQhRhhRCAQ87gZ9dcQfcVl5ArYD8UnhHE5jH8iHeWhlW3AfU2ZLTn-UfAg0jVofLC4ymzuUAA=="> <select id="jumptoform-category_id" class="" name="JumpToForm[category_id]" aria-required="true"> <option value="">Please select a destination:</option> <option value="1000000001">Bitcoin</option> <option value="1">=> Bitcoin Discussion</option> <option value="74">===> Legal</option> <option value="77">===> Press</option> <option value="86">===> Meetups</option> <option value="87">===> Important Announcements</option> <option value="6">=> Development & Technical Discussion</option> <option value="37">===> Wallet software</option> <option value="98">=====> Electrum</option> <option value="100">=====> Bitcoin Wallet for Android</option> <option value="138">=====> BitcoinJ</option> <option value="97">=====> Armory</option> <option value="231">=====> Mycelium</option> <option value="261">=====> Hardware wallets</option> <option value="4">=> Bitcoin Technical Support</option> <option value="12">=> Project Development</option> <option value="14">=> Mining</option> <option value="40">===> Mining support</option> <option value="41">===> Pools</option> <option value="42">===> Mining software (miners)</option> <option value="76">===> Hardware</option> <option value="137">=====> Group buys</option> <option value="81">===> Mining speculation</option> <option value="1000000003">Economy</option> <option value="7">=> Economics</option> <option value="57">===> Speculation</option> <option value="5">=> Marketplace</option> <option value="53">===> Currency exchange</option> <option value="56">===> Gambling</option> <option value="71">=====> Games and rounds</option> <option value="207">=====> Investor-based games</option> <option value="228">=====> Gambling discussion</option> <option value="65">===> Lending</option> <option value="88">=====> Long-term offers</option> <option value="78">===> Securities</option> <option value="73">===> Auctions</option> <option value="84">===> Service Announcements</option> <option value="212">=====> Micro Earnings</option> <option value="85">===> Service Discussion</option> <option value="222">=====> Web Wallets</option> <option value="223">=====> Exchanges</option> <option value="51">===> Goods</option> <option value="75">=====> Computer hardware</option> <option value="93">=====> Digital goods</option> <option value="234">=======> Invites & Accounts</option> <option value="217">=====> Collectibles</option> <option value="52">===> Services</option> <option value="8">=> Trading Discussion</option> <option value="83">===> Scam Accusations</option> <option value="129">===> Reputation</option> <option value="1000000004">Other</option> <option value="24">=> Meta</option> <option value="167">===> New forum software</option> <option value="168">===> Bitcoin Wiki</option> <option value="39">=> Beginners & Help</option> <option value="9">=> Off-topic</option> <option value="250">=> Serious discussion</option> <option value="251">===> Ivory Tower</option> <option value="59">=> Archival</option> <option value="17">===> Chinese students</option> <option value="25">===> Obsolete (buying)</option> <option value="26">===> Obsolete (selling)</option> <option value="99">===> MultiBit</option> <option value="44">===> CPU/GPU Bitcoin mining hardware</option> <option value="92">===> Корзина</option> <option value="34">=> Politics & Society</option> <option value="1000000006">Alternate cryptocurrencies</option> <option value="67">=> Altcoin Discussion</option> <option value="159">=> Announcements (Altcoins)</option> <option value="240">===> Tokens (Altcoins)</option> <option value="160">=> Mining (Altcoins)</option> <option value="199">===> Pools (Altcoins)</option> <option value="161">=> Marketplace (Altcoins)</option> <option value="197">===> Service Announcements (Altcoins)</option> <option value="198">===> Service Discussion (Altcoins)</option> <option value="238">===> Bounties (Altcoins)</option> <option value="224">=> Speculation (Altcoins)</option> <option value="1000000005">Local</option> <option value="241">=> العربية (Arabic)</option> <option value="242">===> العملات البديلة (Altcoins)</option> <option value="265">=====> النقاشات</option> <option value="253">===> إستفسارات و أسئلة المبتدئين</option> <option value="266">===> التعدين</option> <option value="267">===> النقاشات الأخرى</option> <option value="271">===> منصات التبادل</option> <option value="191">=> Bahasa Indonesia (Indonesian)</option> <option value="194">===> Mining (Bahasa Indonesia)</option> <option value="192">===> Altcoins (Bahasa Indonesia)</option> <option value="276">===> Trading dan Spekulasi</option> <option value="277">===> Ekonomi, Politik, dan Budaya</option> <option value="278">===> Topik Lainnya</option> <option value="193">===> Marketplace (Bahasa Indonesia)</option> <option value="30">=> 中文 (Chinese)</option> <option value="117">===> 跳蚤市场</option> <option value="118">===> 山寨币</option> <option value="119">===> 媒体</option> <option value="146">===> 挖矿</option> <option value="196">===> 离题万里</option> <option value="201">=> Hrvatski (Croatian)</option> <option value="220">===> Trgovina</option> <option value="221">===> Altcoins (Hrvatski)</option> <option value="273">=====> Announcements (Hrvatski)</option> <option value="272">===> Off-topic (Hrvatski)</option> <option value="13">=> Français</option> <option value="184">===> Vos sites et projets</option> <option value="50">===> Hors-sujet</option> <option value="183">===> Actualité et News</option> <option value="208">===> Débutants</option> <option value="47">===> Discussions générales et utilisation du Bitcoin</option> <option value="48">===> Mining et Hardware</option> <option value="187">===> Économie et spéculation</option> <option value="49">===> Place de marché</option> <option value="210">=====> Produits et services</option> <option value="211">=====> Petites annonces</option> <option value="209">=====> Échanges</option> <option value="188">===> Le Bitcoin et la loi</option> <option value="54">===> Wiki, documentation et traduction</option> <option value="186">===> Développement et technique</option> <option value="149">===> Altcoins (Français)</option> <option value="258">=====> Annonces</option> <option value="89">=> India</option> <option value="121">===> Mining (India)</option> <option value="122">===> Marketplace (India)</option> <option value="123">===> Regional Languages (India)</option> <option value="124">===> Press & News from India</option> <option value="125">===> Alt Coins (India)</option> <option value="126">===> Buyer/ Seller Reputations (India)</option> <option value="127">===> Off-Topic (India)</option> <option value="28">=> Italiano (Italian)</option> <option value="153">===> Guide (Italiano)</option> <option value="169">===> Progetti</option> <option value="205">===> Discussioni avanzate e sviluppo</option> <option value="175">===> Trading, analisi e speculazione</option> <option value="170">===> Mercato</option> <option value="46">=====> Mercato valute</option> <option value="107">=====> Beni</option> <option value="171">=====> Servizi</option> <option value="172">=====> Esercizi commerciali</option> <option value="173">=====> Hardware/Mining (Italiano)</option> <option value="200">=====> Gambling (Italiano)</option> <option value="162">===> Accuse scam/truffe</option> <option value="115">===> Mining (Italiano)</option> <option value="132">===> Alt-Currencies (Italiano)</option> <option value="176">=====> Annunci</option> <option value="144">===> Raduni/Meeting (Italiano)</option> <option value="165">===> Crittografia e decentralizzazione</option> <option value="145">===> Off-Topic (Italiano)</option> <option value="79">=> Nederlands (Dutch)</option> <option value="80">===> Markt</option> <option value="94">===> Gokken/lotterijen</option> <option value="116">===> Mining (Nederlands)</option> <option value="143">===> Beurzen</option> <option value="147">===> Alt Coins (Nederlands)</option> <option value="148">===> Off-topic (Nederlands)</option> <option value="150">===> Meetings (Nederlands)</option> <option value="82">=> 한국어 (Korean)</option> <option value="182">===> 대체코인 Alt Coins (한국어)</option> <option value="10">=> Русский (Russian)</option> <option value="22">===> Новички</option> <option value="23">===> Бизнес</option> <option value="236">=====> Барахолка</option> <option value="237">=====> Обменники</option> <option value="90">===> Идеи</option> <option value="66">===> Кодеры</option> <option value="21">===> Майнеры</option> <option value="91">===> Политика</option> <option value="20">===> Трейдеры</option> <option value="72">===> Альтернативные криптовалюты</option> <option value="248">=====> Токены</option> <option value="256">=====> Бayнти и aиpдpoпы</option> <option value="55">===> Хайпы</option> <option value="185">===> Работа</option> <option value="18">===> Разное</option> <option value="262">===> Oбcyждeниe Bitcoin</option> <option value="128">=====> Новости</option> <option value="19">=====> Юристы</option> <option value="108">=> Română (Romanian)</option> <option value="109">===> Anunturi importante</option> <option value="114">===> Presa</option> <option value="110">===> Offtopic</option> <option value="111">===> Market</option> <option value="257">=====> Discutii Servicii</option> <option value="166">===> Minerit</option> <option value="112">===> Tutoriale</option> <option value="113">===> Bine ai venit!</option> <option value="259">===> Altcoins (Monede Alternative)</option> <option value="178">=====> Anunturi Monede Alternative</option> <option value="45">=> Skandinavisk</option> <option value="133">=> Türkçe (Turkish)</option> <option value="180">===> Bitcoin Haberleri</option> <option value="189">===> Ekonomi</option> <option value="190">===> Servisler</option> <option value="232">=====> Fonlar</option> <option value="157">===> Alternatif Kripto-Paralar</option> <option value="235">=====> Madencilik (Alternatif Kripto-Paralar)</option> <option value="239">=====> Duyurular (Alternatif Kripto-Paralar)</option> <option value="155">===> Pazar Alanı</option> <option value="156">===> Madencilik</option> <option value="229">===> Proje Geliştirme</option> <option value="158">===> Konu Dışı</option> <option value="174">===> Yeni Başlayanlar & Yardım</option> <option value="230">===> Buluşmalar</option> <option value="29">=> Português (Portuguese)</option> <option value="131">===> Primeiros Passos (Iniciantes)</option> <option value="69">===> Economia & Mercado</option> <option value="181">===> Criptomoedas Alternativas</option> <option value="134">===> Brasil</option> <option value="135">===> Portugal</option> <option value="70">===> Mineração em Geral</option> <option value="206">===> Desenvolvimento & Discussões Técnicas</option> <option value="95">=> עברית (Hebrew)</option> <option value="219">=> Pilipinas</option> <option value="243">===> Altcoins (Pilipinas)</option> <option value="260">=====> Altcoin Announcements (Pilipinas)</option> <option value="268">===> Pamilihan</option> <option value="274">===> Others (Pilipinas)</option> <option value="252">=> 日本語 (Japanese)</option> <option value="255">===> アルトコイン</option> <option value="27">=> Español (Spanish)</option> <option value="31">===> Mercado y Economía</option> <option value="202">=====> Servicios</option> <option value="203">=====> Trading y especulación</option> <option value="32">===> Hardware y Minería</option> <option value="33">===> Esquina Libre</option> <option value="101">===> Mercadillo</option> <option value="102">=====> Mexico</option> <option value="103">=====> Argentina</option> <option value="105">=====> Centroamerica y Caribe</option> <option value="104">=====> España</option> <option value="130">===> Primeros pasos y ayuda</option> <option value="151">===> Altcoins (criptomonedas alternativas)</option> <option value="204">=====> Servicios</option> <option value="177">=====> Minería de altcoins</option> <option value="254">=====> Tokens (Español)</option> <option value="16">=> Deutsch (German)</option> <option value="60">===> Mining (Deutsch)</option> <option value="61">===> Trading und Spekulation</option> <option value="63">===> Projektentwicklung</option> <option value="64">===> Off-Topic (Deutsch)</option> <option value="139">===> Treffen</option> <option value="140">===> Presse </option> <option value="152">===> Altcoins (Deutsch)</option> <option value="270">=====> Announcements (Deutsch)</option> <option value="269">===> Marktplatz</option> <option value="141">=====> Auktionen</option> <option value="36">=====> Suche</option> <option value="35">=====> Biete</option> <option value="62">===> Anfänger und Hilfe</option> <option value="120">=> Ελληνικά (Greek)</option> <option value="136">===> Αγορά</option> <option value="195">===> Mining Discussion (Ελληνικά)</option> <option value="179">===> Altcoins (Ελληνικά)</option> <option value="246">=====> Altcoin Announcements (Ελληνικά)</option> <option value="247">=====> Altcoin Mining (Ελληνικά)</option> <option value="11">=> Other languages/locations</option> <option value="142">=> Polski</option> <option value="163">===> Tablica ogłoszeń</option> <option value="164">===> Alternatywne kryptowaluty</option> <option value="263">=====> Nowe kryptowaluty i tokeny</option> <option value="264">=====> Tablica ogłoszeń (altcoiny)</option> <option value="275">=> Nigeria (Naija)</option> <option value="279">===> Politics and society (Naija)</option> <option value="280">===> Off-topic (Naija)</option> </select> <button type="submit">go</button> </form> </div> </div> </div> </div> </div> </div> <footer class="footer"> <div class="left"> <a class="powered-icon mysql" href="http://www.mysql.com/" target="blank"></a> <a class="powered-icon php" href="http://www.php.net/" target="blank"></a> </div> <div class="center"> © 2020, Bitcointalksearch.org </div> <div class="right"> <a class="valid-icon xhtml" href="http://validator.w3.org/check/referer" target="blank"></a> <a class="valid-icon css" href="http://jigsaw.w3.org/css-validator/check/referer" target="blank"></a> </div> </footer> <script src="/assets/427491ca/f7fa18c7/jquery.js"></script> <script src="/assets/427491ca/0f7cd776/yii.js"></script> <script src="/assets/427491ca/0f7cd776/yii.activeForm.js"></script> <script src="/assets/427491ca/3f84b6fd/jquery-ui.js"></script> <script src="/assets/427491ca/0ec48276/js/akeyboard.min.js"></script> <script src="/assets/427491ca/f1f14823/js/bootstrap.js"></script> <script src="/assets/427491ca/8d094ee3/js/activeform.min.js"></script> <script src="/assets/427491ca/ab575839/js/select2.full.min.js"></script> <script src="/assets/427491ca/7ca46779/js/select2-krajee.min.js"></script> <script src="/assets/427491ca/286d0aed/js/kv-widgets.min.js"></script> <script>jQuery(function ($) { jQuery('#jump-to-form').yiiActiveForm([{"id":"jumptoform-category_id","name":"category_id","container":".field-jumptoform-category_id","input":"#jumptoform-category_id","enableAjaxValidation":true}], {"validationUrl":"\/forum\/default\/jump-to-category"}); $(document).on('change', '#jumptoform-category_id', function() { $('#jump-to-form').submit(); }); $('.messages .items .item').each(function() { var user_data_height = $(this).find('.user-data').outerHeight(); var message_data_height = $(this).find('.message-data').outerHeight(); var header_height = $(this).find('.message-data .header').outerHeight(); var signature_height = $(this).find('.message-data .signature').outerHeight(); var content_padding = parseInt($(this).find('.message-data .content').css('padding-bottom')); if(user_data_height > message_data_height) { $(this).find('.message-data .content').css('height', (user_data_height - (header_height + signature_height)) - content_padding); } }); var $el=jQuery("#w3 .kv-hint-special");if($el.length){$el.each(function(){$(this).activeFieldHint()});} jQuery&&jQuery.pjax&&(jQuery.pjax.defaults.maxCacheLength=0); if (jQuery('#timezoneselectform-timezone').data('select2')) { jQuery('#timezoneselectform-timezone').select2('destroy'); } jQuery.when(jQuery('#timezoneselectform-timezone').select2(select2_7cea2cc0)).done(initS2Loading('timezoneselectform-timezone','s2options_3267a624')); jQuery('#w3').yiiActiveForm([], []); $(document).on('click', '.hider', function () { if ($(this).hasClass('hide-header')) { $('#header .auth-info').addClass('hidden'); $('#header .bottom').addClass('hidden'); $(this).removeClass('hide-header'); $(this).addClass('show-header'); } else { $('#header .auth-info').removeClass('hidden'); $('#header .bottom').removeClass('hidden'); $(this).removeClass('show-header'); $(this).addClass('hide-header'); } }); $('.timezone-dropdown').on('change', function() { var id = $(this).find('select').select2('data')[0].id; $.ajax({ url: '/site/save-timezone', type: 'get', dataType: 'json', data: { timeZoneId: id, }, success: function(response) { location.reload(); }, error: function () { } }); }); function submitBigsearch() { location.href = '/forum/default/search?q=QUERY'.replace('QUERY', encodeURIComponent($('#bigsearch textarea').val())); } $('#bigsearch textarea').on('keydown', function(e) { if (e.key == 'Enter') { event.preventDefault(); submitBigsearch(); } }); var keyboard = new aKeyboard.keyboard({ el: '#akeyboard-container' }); keyboard.inputOn('#bigsearch textarea', 'value'); keyboard.onclick('Enter', function() { $('#akeyboard-container').hide(); submitBigsearch(); }); $('#akeyboard-container').draggable(); $('.bigsearch-function-tia').on('click', function() { $('#akeyboard-container').toggle(); }); });</script></body> </html>