quarta-feira, 9 de dezembro de 2009

8 na potencia 15000 (8^15000)

Brincando com uns algoritmos, calculei o numero 8 elevado na potencia 15000.

Como se pode ver abaixo, o numero é beeeeem grande:

[começa aqui]
223771554658439779138939016305
86894857616520978421454498970966155726052667229733134922986368060090490454626321235535182998290736034686244108234813671695383270719919302368694055521563376397053908105653421337368338198168412883455559067177310723301998319699359284695885329663507667647209988419112653799672464101706347141859567527886099482750080865783679325103909646765137724203923894130437094915419404148255134945751594155979731755402993392850716349303466439317261517766641035156268155988892046130583388291566498854721147394770167510614034128113039269127285537567528415718803736287788429267958512158937492437337658054048653930636926282201141151356534222971626408170892799310405886477500520281679206712359648322341867462070380874149140820458552245168287670488400616079583118821549456973534975249519512919268816397133340353513635560796394715808758492877781262127802454369727419489219791269280432657687344280843808006611978323166422434662062682256827446473590071035814975315970867689160769424998285018459424178096686187712065341860377193665536380790319275948133027723193448079437029028650933934735708845823225134084179693094396615043416253865696755812122233146692575015212637414553764629429319601164818674716936111798665772092214870707290833721469543508709344134833579580543905906398906969811614124461102097257876502226066233236136190786883505676204205807483152920205607096617039329196101456030639295011508673497512418797510560960226577407466246978064413221541594250772747180289866753522230104300975226174057050835448733029837190140854917178931406363838097875367495883117163840642603158251051832797667050327783191364228296622616149386789223174815038146041898809923265436410640566952245551424468940775903251913035214597891353613055122769960353247063535186837954494854300783197499008471877815635686502205211218267476138524849028251395169281491701864257606709285310346117801498486374184104362422718154171482623509831678734310034307557615556742268327940264551728226803236223180981287955702740547290898411438478118172111648533854022159130958597715195269013222243267207023109063265247051282801343132980420633626326819783506561194539507584421968734936582409582880576267943489076043084746615506030548935102178283087302151152240472227678191154147609022830689140593538324622583844350042836875768478044021993450659351018412463496383983689683995990129756268185881335050313599050015320833786514070127763696989841227044572729627007708175773103596455068879731840292501053374330282960363208088819740856552984483875322557195900834119401362363971653042916541249467548391206941481609001841031405269168758820291810564156512928875339124267002344441529566858147149364397793452380632292492306382066580754345362296228790297552126678131372638517689718423809793848441580226438988995074179647155224268021551996912203604453413909908937548219358776998179867798719051318133980576487847931569833951380116913815309325763051801581398236747645794748207986304058794742994554158428070961586546314227467192645214698249126395647252749966614621414899441298999322841988118141601451683725390203934909511082331617572071494270840350403020012190334950098772280607014589579679693274980283678255543155466920213706625087910105027291429235255019741075453033188950160434967786961095106688551436905691072536110426876031207224856586749767607504495809230481411419089976197583282428068909327992246751429006427807063344533221168004212618538422151678660720043355385397351335597588762663866335601186262402111314675858799382677350453388996058834283242808206215273469663122718688124539192398350639871119770796697444378693352653277886214977332121029813248286777489730273826711750120978078992567681884203017496466096714747212599133768737929932344799711847392738561050179833468612509193174417170084709695172702927589616670032175379912054959509171397443222768904272034021409845043339747424384030787672818151593633075956066334094429504970056266315097879424729195701429315020433023009053477771795588091409400848875302699260754558292449250780056144080765025233846573274724750705677172662571386121690130691558590923567267742349334046335630059592985331817428390358643261360152682116721281229452680435360591780801523539374110343878635734002452840069527856986137758678571809276887555525346398179932847315203656699925483668483941157668179598489225004446329859215399429011208694762411591563062027797010059122673163492923127794883641758126074957189805220894339013112327565405279624343227064755563263980012684464062680085154402806906424006624665685327680431083137482525945996577825454885192960824802008312573831571159288403539967292368085516861946806204936846002429936292633163502563555336503407604267166470722203115804231971380178924663430416238901576414658285258269304571297919309629456266119497081731117862864348095685680971048658996954747606055668174343717874818072855337372857696026745416868879061177841374469067343751385413962031731614571901933675841507208899703470775388881922999722244066207045546919573275132487090891966943773535984042759339607595362362994777897771618622985738745987143892527682977150578782287271421495248787942275855674001015866199458262992721494550583433191512312178581373192187101247402493348613449211112168633685342362435458421536946373849173567895023008603533299773417052418835068462192356282689490507270160664073141865410097894710107051040360570167113435238728677578928900230283643551137402584835998859374525454138163950427114414878670543008785755905826813728216423797080136835547857010611660515359686175993379586953584891690858346561410271369956529259798668665016659757116578236259505220669818916878461754982386214198985895508475182342384289726514762358262598438115894540583839130205367866847169896154797519707555251221989466601136485641894296956764570419623803925920402733367515403623344770980847037350211550494418953823043539100868552792407078888501043327048361352482833096471464870168756079526295957991725357940639271812000413536366712201945099512612968297784732660239434851335631039994721782025860088858979678604038180945116398804436159563529611178705760951825220360229240855388819672188796541756583007267508302600494845133463744620861226648030413569756865168725939942769027310272669856310914472496445855349233519358172899071633448929763520411907235710721743240537855902238403838507627905206640749183286382487570662425115435126524338973081603999603091097112629817790431947077698557600040048502247857572866705854946219072350986786334215499795284716039286946690557902804637672057589737032876744838860627508473767087829455581131378888034625627304911281081993426709057369991078644239768786840815554704822884887264703295007786811359657282717782293551326460763543534466507525774001825511297273687180973387193813932302063402651309166690143200273176710147259638102671417107664247105597678402214379763564075124330991954735540463343720478504677464179182190414762392363882835965112591234527738170836377030460860695408418957872770641552567302691787668229998546624945259472143794121254056813065603113583510923875741967308901024665423321355661413181145818199840034217157708329685775698395936108663547316465775566922522176249561565054205830210961253161387766364532804848405162483211832103617969030829680767846753661164565812620436687254145184098213271108628442384727165474246576987856235154788649584828091337935312437958248714018942481353872282754536934749391878017713896345257073687223354252190606441195083385419245584463617505058490461871982178425672673940279178670244396188026227166568711069596441512714581966404544068245461886861684433056047694509232363328870197281183634227309109058753462051927965633754596344695502477284094502443376535264451577003123855799957004274426219424775556913931016640693548103005710666141013090918304365230833521362285370289436844776322663434516920172908803098440462579519805264806139821433598994651054107209211099911980282197264824254941516199649293692585965276912130430384139803527922580386809515364725611951697593493862543395927071038760180658215945465888140158934280556554054791574655349993644529666768471731622938378373991702685548439997044203556495868267137994021572373272970736460148414284563228296887829757583665703879851468343224057702192671663744112545994159111624758893208576883630704198706674430907482155270320083530003130039460360158640632368674817695537579204346282082275607210259811187211856655455126342452753436876726070691115439328807213162717030652184872922088730855578600039298484530203572292841848143243126561133136657319947498596002525832561393576848433055588630900818542134498054709765048867333045936257406974280471011765098766017908308972662054406562796213025225274711300399322057782707545989760789228200100133922040264901764434870124544231313354434710361235071883668602619785410065814505206632625507283780203426720320845725980443255356290361675982013338822383059908015323134649072630945087357360628462865618890663556169061062403004604603818537218623283654167216149376389379837857443246469948477985304043879723160269035319050288831373228132520099583535568864359696924021209715420869021299662397439695965188788046706646527632206961408085706424382634630532054618375188211460107229625736613040574969515848104375644670909917493504799278434877749988081136994593765198743412132386030068974190966632899919776573166759944075430163805968917126251158083500684428034124567326940365564009629253893555544457609081411082619314491422365706132598442952544596425204533440813668437022195468275149634509276724062545260537630651311813137483756301583000011644123904995030364944858374512662706082204220146724767124845255328615627498623822047236915079494838343466411650933788491023117929808696125235704184725364368093668796084390899881361157255624803783896334115270870219051253755875185879612945617054261030282426666035488254712094973407120106082224707464102246103582601474760381495723736500128035554021470967268470645791117639099824497640755914864598130194238644386373460313219120169613300579088270975218157675130048292165721118171194058767022694729173283668694953787103678530789346457171933070068810367319366094263715126178878230690438742049035143268174926030507265505611348217260236975659060407610674018633457703253900694550272365585785054263476766054616498033530691751934062122977372852861447465501338228623133658457168596889979534554710513485853876275346719214978348820093356767858564625062898534792963878798856790085522181586824987864242113856639223231854014943592204480332977361611989280238819530315175627379183674827715742752554537196126275599123521266254834590884195887597440700950451069796052632713349565574532920593157362560949340042479100995657219946814439973117161314335389147199941588552394761394942177851333193917548118310466133932719960046758131026292587868681286922558845890291403238468654714282938420330632631760665088955377318043166569644132794928710106673195562487151053481408533263018333077093588598059529490496880002412779378589647280648345656677703920325361124197425919268372336758265546708704513201427685115208795027811113758614676555038190245187130362003736787846826180832969330382841938666121643090149669778325844993509078342646446547073922029747971089240599092083687856166746460463613200088794514256448612763028191537385632502388047549512976270812841848089847320603020155777328470633758067649434628883508628233814589579928390560150751834337516995505415656107658017228560137482620882760603834371130440144288589219151034803624088657527315446968969533865774769812649645831510204428300879304952626924146832699248255545286105785128053649552644894877444588115515571909492147644353479420171213193253876829879655690991290491895712681589992388677005321744867884139561169387442324785242991272017253426321668877115326419515165216317298816540782266797518832670516209691471691875176583418074853800101725058464297162035549736532281374013249643786595674143310448701254114949232572578056878650721505481425221280514572220210646085297219702146985620068297843361366523745494795665248658631647511517902009275231404631753020578261617071997433885516561966332874660434961047525443375896968528633959580188910799781343774753222633127022328874360809645307629229710344117230170605032844122141336016630668460794118638028054149143832992428884058980994273737714802933456474957567585254241742635346918361957254059236892838623794388259137203316220656359716857110273784029090997423082889153036146054974445337784224582515759656205767287511947298042724901827222334221051864772801661313654138149822452364832178967386963650220997107682273746419793876483591788428348193657123850493121859516971833815754173198499456299828946770413428229607619074706824148499512167364096384156023732172840289833289387283744456742643147689304448607097058832916224198452855059724420288356566346485863623835185460334769473511286176991855947644625703713082459484587496956823886311647924006228293650569041015360735338658135569419998280966691622321948525831651384251732512274787040017354180280780308750875920189642322471028747631408187635208463420621587426164888005605249029362464191042597681253315499203927722879340845194626040573914574907778273496077918294452867606950786508467652971668652555193317690307885371033759685117634801357501759517812535133014400290738836502850321563606756302333236791072103075442739734015610364889463804071870896682464123957734799152296738510792749791178843654068000725060378583010865330110878729672060240134505087795312084059994879333556120156642560275726694322667707847020847577161688875969537810625527335436154218746692368202798226390903679882984164616916003103213456665730554349685090822841360921508771051632163699442728674103202909938784007349415934176289289774967040430309376
[termina aqui]

sexta-feira, 27 de novembro de 2009

Protocolo de IPC e tranferencia de dados

Gente, desenvolvendo o protocolo PTDS1, acabei desenvolvendo um procolo simples para IPC (Inter Process Comunication), chama-se PCPR (Protocolo de comunicação de processos remotos):

[2][msg][data_size][data][cks][4]

[2] byte 2 (1 byte);
[msg] mensagem (1 byte)
[data_size] tamanho do bloco de dados de 1 à 250 (1 byte)
[data] dados (maximo 250 bytes)
[cks] checksum do pacote, exeto o primeiro e os 2 ultimos caracteres (2, cks e 4)
[4] byte 4 indicando o fim do pacote (1 byte)

cada frame do pacote tem no máximo 255 caracteres.
Não serve para enviar grandes blocos de dados como arquivos, para isto estou desenvolvento o PTDS.
Ótimo para IPC entre processos remotos

segunda-feira, 16 de novembro de 2009

E Se a nossa informática não fosse em base 2

Você nunca pensou como seria a nossa informática se em vez da base 2, utiliza-se outras bases?
A base 2 na informatica dá-se devido ao fato de que transistores (dispositivos eletrônicos que, na informática, são utilizados para guardar bits) assumem dois estados, ligado ou desligado, ou seja, 1 e 0.

Mas e se tivessem outras bases. Veja esta lista que mostra quantos valores caberiam em alguns tipos de variáveis muito conhecidas dos programadores:


Legenda
B = Base binaria
T = Base trinaria
O = Base Octal
H = Base Hexadecimal


Byte
B 256
T 6.561
O 16.777.216
H 4.294.967.296

Word
B 65.536
T 43.046.721
O 281.474.976.710.656
H 18.446.744.073.709.551.616

Integer 32Bits
B 4.294.967.296
T 1.853.020.188.851.841
O 79.228.162.514.264.337.593.543.950.336
H 340.282.366.920.938.463.463.374.607.431.768.211.456

Integer 64Bits
B 64 18.446.744.073.709.551.616
T 64 3.433.683.820.292.512.484.657.849.089.281
O 6.277.101.735.386.680.763.835.789.423.207.666.416.102.355.444.464.034.512.896
H 115.792.089.237.316.195.423.570.985.008.687.907.853.269.984.665.640.564.039.457.584.007.913.129.639.936

sexta-feira, 13 de novembro de 2009

Protocolo para tranferencia de arquivos e IPC multiplos

Comecei agora a desenvolver um protocolo para fazer a comunicação entre dois processos remotos, permitindo que arquivos, mensagens de IPC e outros dados sejam transferidos simultaneamente.

O protocolo possui uma interface para a transferencia de arquivos bem trabalhada, permitido que, centenas de arquivos sejam tranferidos simultanemante (Claro que tudo depende da capacidade da rede).

Estou trabalhando com pacotes de no máximo 512 bytes. Não sei se é essa a causa, mas algo esta consumindo CPU. Vou fazer testes com buffers maiores.

Pretendo, ao término, disponibilizar o protocolo.

quinta-feira, 27 de agosto de 2009

Criptografus 2.0.1

Hoje disponibilizei uma nova versão do Criptografus, programa para criptografia de arquivos.

Nesta nova versão, alem de alguma correções visuais e do novo algoritmo de criptografia, o Criptografus conta com uma maneira mais segura de manter seus dados.

Aparentemente nada funcional foi alterado, porém, as modificações permitirão, nas próximas versões, meneiras de proteger o Criptografus com senha e configurações independentes para cada usuário.

Para maneter seu Criptografus atualizado, faça o download da nova versão (2.0.1) agora.

Computador vai substituir nariz humano em usina nuclear

Notícia "piratiada" de: http://tecnologia.terra.com.br/interna/0,,OI3943493-EI4799,00.html

Muitos das centenas de trabalhadores na usina nuclear Shearon Harris, em New Hill, Carolina do Norte, se ocupam de tarefas de alta tecnologia como calibragem de equipamento, monitoração de campos radiativos ou controle do reator. Mas há três funcionários de plantão 24 horas ao dia para uma função que poderia ter vindo de outro século.

Eles farejam fumaça. Caminham quilômetros a cada dia, subindo e descendo escadas e percorrendo vastos corredores e passagens estreitas, visitando os pontos mais sensíveis pelo menos uma vez por hora para garantir que não tenha surgido um incêndio.


continuie lendo esta notícia aqui



sexta-feira, 14 de agosto de 2009

Criando funções de callback em C++

Funções de callbacks são fundamentais em alguns objetos (objetos que fazem monitoramento e precisam disparar eventos dentro do programa).

Callbacks na verdade são ponteiros para funções, ou seja, são como variaveis que disparam funções, hora disparar a função x, hora disparam a função y.

Em c++, uma função de callback pode ser definida da seguinte maneira

void (*Callback)(int parametro)

entendendo as partes:

"void" -> como em outra função qualquer, indica-se o tipo de valor retornado, que neste caso é um void (não retorna nada)

"(*Callback)" -> este é o nome da variavel, é a variavel "Callback" que vai apontar para as funções;

"(int parametro)" -> são os parametros que a função de callback vai receber.

Um ponteiro como o nosso ((*Callback)) possui apenas um unico parametro, do tipo Int, logo não pode apontar para funções com um parametro "const char" ou para uma função que tenha mais do que um parametro

Apontando a nossa variavel ((*Callback)) para uma função:

para apontar a nossa função de callback para outra função, fizemos assim

(Callback) = &nome_da_função

Chamando a função apontada por nossa variavel

Para chamar a função apontada por nossa variavel, chamamos assim:

(*callback)(1);

=======================================

Programa exemplo:
#include
#include

typedef const char* string;

using namespace std;
void teste(int valor){
cout <<>

quinta-feira, 13 de agosto de 2009

Criptografus 2.0

Deixe-me falar um pouco sobre o Criptografus
O Criptografus é um programa perfeito para quem deseja criptografar arquivos particulares prevenindo-se de bisbilhoteiros.

Começei a desenvolver o Criptografus a alguns meses atrás para criptografar arquivos. As primeiras versões não disponibilizei na internet pois apenas tinha feito para uso particulas, porém, percebi que os internautas e computadorizerios (computeiros fica mais estranho ... hehe) que estão precisando de cripgrafia poderiam ser beneficiados, afinal, o Criptografus é muito pequeno, simples, de fácil uso e não necessita instalação.
O Criptografus pode ser carregado no pendrive, ate mesmo em um disquete.

Caracteristicas do Criptografus
-Não precisa instalação
-Uso simples
-Pequeno
-Muito rápido











Clique aqui para fazer o download

segunda-feira, 10 de agosto de 2009

Robô que se locomove de um jeito diferente

Repare no que este robozinho utiliza para se locomover.. hehe

muito massa mesmo...

depois de reparar nas "Patinhas" do "cachorinho", de uma reparada na resitencia do bixinho

quinta-feira, 6 de agosto de 2009

Ajax com Callback

Esta a é uma função que fiz (com base em outra que encontrei na internet) para fazer requisições ajax e enviar o texto da resposta para uma função de Callback:


function LoadAjax(Page, CallBack, Metodo){
if (Metodo == null){
Metodo = "GET";
}
var xmlHttp;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e){
// Internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Erro ao carregar o programa!");
return false;
}
}
}
xmlHttp.open(Metodo,Page,true);
xmlHttp.send(null);

xmlHttp.onreadystatechange = function(){
if (xmlHttp.readyState == 4){
Resposta = xmlHttp.responseText;
CallBack(Resposta);
}
//opcional
else{

}
}
return false;
}

DotGNu

Pois é, o DotGNU é um projeto que tem por objetivo, dar uma alternativa ao .NET nos softwares livres. .Net é, digamos, um "java" da Microsoft, mas não acho que deva ser comparado ao Java, pois o Java roda em Linux, Mac-OS, Solaria, No meu celular, ja o .NET so pra que tem Windows.

Bom, mas voltando ao DotGNU. A comunidade do software livre respondou ao .NET com o DotGNU, mas pelo que andei lendo, esta tecnologia anda muito pouco divulgada (ou será que acho isso pq faz poco tmpo que fiquei sabendo deste projeto?).. : D, Mas acho que esse projejeto ainda vai dar o que falar em Linux, eu espero.

terça-feira, 4 de agosto de 2009

Orkut - contentsuppressed

Se você tambem teve isso colocado no lugar de links do seu perfil, calma, não é ninguem que invadiu seu Orkut.
O pessoal do Orkut esta fazendo uma limpa em alguns perfis e comunidades e retirando links para páginas externas.
Muitas vezes os link são subtituídos por uma mensagem do tipo "[content suppressed]". Isso tudo faz parte da politica sobre spams do Orkut

segunda-feira, 3 de agosto de 2009

???Que blog é esse???

Calma, ja explico. :D

Este blog foi criado hoje e conterá informações sobre tecnologia. Notícias, curiosidades e outras coisinhas mais..

:D