Mga Archive ng Tag: geek

Blangkong Screen pagkatapos Hibernate o Sleep?

Okay, the short answer, increase your virtual memory to more than the size of your physical memory.

Long version now. Kamakailan lamang, I had this problem with my PC that it wouldn’t wake up from hibernation or sleep mode properly. The PC itself would be on and churning, but the screen would switch to power save mode, staying blank. The only thing to do at that point would be to restart the computer.

Like the good netizen that I am, I trawled the Internet for a solution. But didn’t find any. Some suggested upgrading the BIOS, replacing the graphics card and so on. Then I saw this mentioned in a Linux group, saying that the size of the swap file should be more than the physical memory, and decided to try it on my Windows XP machine. And it solved the problem!

So the solution to this issue of blank screen after waking up is to set the size of the virtual memory to something larger than the memory in your system. If you need more information, here is how, in step-by-step form. These instructions apply to a Windows XP machine.

  1. Right-click on “My Computer” and hit “Properties.”
  2. Take a look at the RAM size, and click on the “Advanced” tab.
  3. Click on the “Setting” button under the “Performance” group box.
  4. Sa “Performance Options” window that comes up, select the “Advanced” tab.
  5. Sa “Virtual Memory” group box near the bottom, mag-click sa “Change” button.
  6. Sa “Virtual Memory” window that pops up, set the “Custom Size” to something more than your RAM size (that you saw in step 2). You can set it on any hard disk partition that you have, but if you are going through all these instructions, chances are you have only “C:”. Sa aking kaso, I chose to put it on “M:”.

Magic ng Bagay Nakatuon Wika

Wala kahit saan ay ang pangingibabaw ng paradigms higit pa kaysa sa halata na sa object oriented na mga wika. Tumagal lamang ng pagtingin sa mga salita na ginagamit namin upang ilarawan ang ilan sa kanilang mga tampok: polymorphism, pagmamana, sa katunayan, abstract, ingagkakargaang labis — ang lahat ng ito normal (o malapit-normal na) -araw-araw na salita, ngunit signifying iba pang bagay at konsepto masyadong malayo mula sa kanilang literal na kahulugan. Pa, at dito ay ang banggit-banggitin, ang kanilang mga kahulugan sa computing konteksto ay tila exquisitely naaangkop. Ito ba ay isang senyas na masyadong malayo kinuha namin ang mga paradigms? Marahil na. Pagkatapos ng lahat, ang “bagay” sa bagay na nakatuon sa programming ay isang abstract na tularan, walang kinalaman sa pagkakaroon “Na ikukubli Bagay ng Desire,” halimbawa.

Ginagawa namin makita ang proseso ng abstraction pagpapatakbo ng isang bit ligaw sa mga pattern ng disenyo. Kapag ang isang pattern na tawag mismo ng isang bisita o isang factory, gumugugol ito ng geekily mapagpatawad na puso upang ibigay ang mga mala-tula lisensya tahimik usurped. Pattern ng Disenyo, sa kabila ng kalayaan tumagal sila sa aming mga pagiging sensitibo, magdagdag ng napakalaking kapangyarihan sa object oriented na programming, na kung saan ay napakalakas, kasama ang lahat ng built in na mga tampok tulad ng polymorphism, pagmamana, ingagkakargaang labis atbp.

Upang isang tao na may isang eksklusibong background nang sunud-programming, lahat ng mga tampok na ito ng object oriented na wika ay maaaring mukhang tulad ng purong magic. Ngunit karamihan sa mga tampok ay talagang extension o mga pagkakaiba-iba sa kanilang mga katumbas na sunud-programming. Ang isang klase ay tanging istraktura, at maaari kahit na ipinahayag bilang tulad sa C . Kapag nagdagdag ka ng isang pamamaraan sa isang klase, maaari mong isipin na ang mga compiler ay lihim pagdaragdag ng isang pandaigdigang function na may dagdag na argumento (ang reference sa bagay) at isang natatanging identifier (sabihin, isang hash halaga ng pangalan ng klase). Polymorphic function din ay maaaring ipinatupad sa pamamagitan ng pagdaragdag ng hash value ng pag-andar lagda ng mga pangalan ng function, at paglalagay ng mga ito sa pandaigdigang saklaw.

Ang tunay na halaga ng bagay na nakatuon pamamaraan ay na hinihikayat nito magandang disenyo. Ngunit magandang disiplina programming napupunta lampas lamang ang paglalapat ng isang bagay oriented na wika, na ang dahilan kung bakit sinabi sa aking unang C guro, “Maaari kang magsulat ng masamang Fortran sa C kung mo ba talagang. Lamang na mayroon kang upang gumana ng kaunti mas mahirap na gawin ito.”

Para sa lahat ng kanilang mahiwagang kapangyarihan, ang programming wika sa bagay na nakatuon sa lahat ng magdusa mula sa ilang mga karaniwang kahinaan. Isa sa kanilang mga pangunahing disadvantages ay, sa katunayan, isa sa mga pangunahing tampok ng disenyo ng bagay na nakatuon sa programming. Mga bagay ay mga lokasyon sa memorya na naglalaman ng data bilang inilatag down na sa pamamagitan ng mga programmer (at ang computer). Tandaan lokasyon Memory ng estado ng bagay na — kusa. Ano ang estado ay tumutukoy sa isang bagay ano ang ginagawa nito kapag ang isang paraan ay tawagin. Kaya object nilang pakikitungo ay likas na stateful, kung maaari naming sumang-ayon sa kung ano ang “estado” Ibig sabihin sa object oriented na konteksto.

Ngunit sa isang user interface, kung saan wala kaming gaanong kontrol sa pagkakasunud-sunod kung saan ang iba't-ibang mga hakbang na ito ay pinaandar, maaari naming makakuha ng maling mga resulta sa stateful programming depende sa kung anong hakbang ay makakakuha isagawa sa isang kung ano ang punto ng oras. Ang nasabing mga pagsasaalang-alang ay lalong mahalaga kapag nakikipagtulungan kami sa parallel computer sa kumplikadong sitwasyon. Isang kanais-nais na pag-aari sa mga ganitong kaso ay ang function ay nagbabalik ng numero lamang batay sa kanilang mga argument. Ang property na ito, tinatawag “kadalisayan,” ang pangunahing layunin ng disenyo ng pinaka-functional na mga wika, bagaman ang kanilang mga arkitekto ay umamin na ang karamihan sa kanila ay hindi mahigpit “dalisay.”

Mga Seksiyon

Paradigms Lahat ng mga Way

Paradigms lumaganap sa halos lahat ng aspeto ng computing. Ang ilan sa mga paradigms ay natural. Halimbawa, ito ay natural na makipag-usap tungkol sa isang imahe o isang kanta kapag aktwal na namin ibig sabihin ng isang JPEG o ng isang MP3 file. File ay isa nang abstraction nagbago sa tularan file-folder popularized sa mga sistema ng Windows. Ang kalakip na mga bagay o mga batis ay muli Abstractions para sa mga pattern ng mga zero, na kumakatawan sa mga antas ng boltahe sa transistors, o iikot estado sa isang magnetic disk. Mayroong isang walang hanggan hierarchy ng paradigms. Tulad ng kasabihan pagong na confounded Bertrand Russell (o ito ay Samuel Johnson?), ito ay paradigms lahat ng mga paraan down.

Ang ilang mga paradigms may kupas sa background kahit na ang mga terminolohiya nagbago mula sa mga ito lingers. Ang orihinal na tularan para sa mga network ng computer (at ng Internet) ay isang mata ng interconnections nakatira sa langit sa itaas. View na ito ay higit pa o mas mababa papalitan ng World Wide Web na naninirahan sa lupa sa aming mga antas. Ngunit pa rin namin gamitin ang orihinal na tularan tuwing sinasabi namin “download” o “i-upload.” Ang World Wide Web, sa pamamagitan ng ang paraan, ay kinakatawan ng mga acronym WWW na ang mga numero sa mga pangalan ng lahat ng mga web site. Ito ay isang acronym na may mga kahina-hinala pagkakaiba ng pagiging ang tungkol sa isa lamang na tumatagal sa amin na sabihin sa kung ano ito ay kumakatawan sa. Pero, pagkuha ng bumalik sa aming paksa, paradigms ay malakas at kapaki-pakinabang na paraan upang gabayan ang aming mga pakikipag-ugnayan na may mga pamilyar na mga sistema at mga kapaligiran, lalo na sa mga computer, na kung saan ay kakaiba at kumplikadong hayop na nagsisimula sa.

Ang isang pangunahing processor computer ay deceptively simple. Ito ay isang string ng mga pintuan. Ang isang gate ay isang lumipat (humigit-kumulang) na binubuo ng isang maliit na grupo ng mga transistors. Ang isang 32 bit processor ay may 32 Lilipat sa isang array. Ang bawat lumipat ay maaaring alinman sa off na kumakatawan sa isang zero, o sa (one). At isang processor magagawa lamang ng isang function — idagdag ang mga nilalaman ng isa pang hanay ng mga pintuan (tinatawag na isang rehistro) sa kanyang sarili. Sa ibang salita, Maaari lamang ito “maipon.”

Sa sulat na ito ang huling pangungusap, Na ako nagsimula ng isang proseso ng abstraction. Sinulat ko “nilalaman,” nag-iisip ng rehistro bilang isang lalagyan numero holding. Ito ay ang kapangyarihan ng maramihang mga antas ng abstraction, ang bawat isa ay simple at malinaw, ngunit gusali sa anumang dumating bago ito, na gumagawa ng mga sobrang sobra malakas isang computer.

Maaari naming makita abstractions, kasunod ang modularization ng lumilipad ang isip ng konsepto, sa bawat aspeto ng computing, parehong hardware at software. Grupo ng transistors maging array ng mga pintuan, at pagkatapos processors, nagrerehistro, cache o memory. Accumulations (mga karagdagan) maging lahat arithmetic operations, string manipulasyon, interface ng gumagamit, image at pag-edit ng video at iba pa.

Isa pang tampok ng computing na pantulong sa tila walang katapusang martsa ng Batas ng Moore (na nagpapahayag na ang mga computer ay doble sa kanilang kapangyarihan sa bawat 18 na buwan) ay na tila sa gasolina ang mga karagdagang paglago bawat advance, pagbuo ng isang paputok paglago. Ang unang compiler, halimbawa, nasulat sa primitive na antas ng wika assembler. Ang ikalawang isa ay isinulat gamit ang unang isa at iba pa. Kahit sa pag-unlad ng hardware, isang henerasyon ng mga computer maging ang mga tool sa pagdisenyo ng mga susunod na henerasyon, stoking isang tila hindi matinag cycle ng pag-unlad.

Habang ito positibong feedback sa hardware at software na ito ay isang magandang bagay, ang likas na katangian ng paputok ng paglago ay maaaring tumagal ng sa amin sa maling direksyon, marami na tulad ng malakas na lumago sa merkado na credit humantong sa banking collapses ng 2008. Maraming mga eksperto computing taka ngayon kung ang mga bagay na nakatuon sa teknolohiya ay overplayed.

Mga Seksiyon

Mga zero at mga

Computers ay kilala para sa kanilang mga infuriatingly literal na pagsunod,,en,Ako bang sinumang may kailanman nagtrabaho sa isang computer ay dumating sa kabila ng kakulangan ng makiramay sa kanyang bahagi,,en,ito ay sumusunod ang aming mga tagubilin sa tuldok,,en,gayon pa man natatapos up accomplishing ng isang bagay nang sama-sama ng iba't ibang mula sa kung ano ang balak namin,,en,Lahat kami ay makagat sa puwitan sa pamamagitan na ito literal na pagsunod sa logic sa gastos ng commonsense,,en,Maaari naming ipatungkol hindi bababa sa ilan sa ang sisi sa ating mga kakulangan ng pag-unawa,,en,literal at kumpletong pag-unawa,,en,ng paradigms na ginagamit sa computing,,en,Mayaman sa paradigms,,en,larangan ng computing ay may isang malakas na impluwensiya sa paraan sa tingin namin at tingnan ang mundo,,en,tingnan lamang ang paraan malaman namin ang mga bagay mga araw na ito,,en,Huwag malaman namin ang anumang bagay ngayon,,en. I am sure anyone who has ever worked with a computer has come across the lack of empathy on its part — it follows our instructions to the dot, yet ends up accomplishing something altogether different from what we intend. We have all been bitten in the rear end by this literal adherence to logic at the expense of commonsense. We can attribute at least some of the blame to our lack of understanding (oo, literal and complete understanding) of the paradigms used in computing.

Rich in paradigms, the field of computing has a strong influence in the way we think and view the world. Kung hindi ka naniniwala sa akin, just look at the way we learn things these days. Do we learn anything now, o lamang malaman namin kung paano ma-access ang impormasyon sa pamamagitan ng pag-browse at paghahanap,,en,Kahit ang ating arithmetic kakayahan may bagbag kasama ang pagdating ng calculators at mga spreadsheet,,en,Naaalala ko ang mga alamat ng mga dakilang mga isip tulad Enrico Fermi,,en,na tinatayang ang kapangyarihan output ng unang nuclear sabog sa pamamagitan ng lumulutang ng ilang piraso ng scrap paper,,en,at tulad ng Richard Feynman,,en,na talunin ang isang abako expert sa pamamagitan ng paggawa binomial expansion,,en,Siguro kung ang Fermis at Feynmans sa ating panahon magagawang upang hilahin ang mga stunt na walang bunot kanilang mga bulsa calculators,,en,pamamaraan programming,,en,sa pamamagitan ng kanyang katanggap-tanggap ang muling paggamit ng matematikal na mga simbolo at mga pattern,,en,ay may hugis ang paraan nakikipag-ugnayan kami sa aming mga computer,,en,Ang paradaym na umunlad ay tiyakan unmathematical,,en,Functional programming ay kumakatawan sa isang counter-atake,,en? Even our arithmetic abilities have eroded along with the advent of calculators and spreadsheets. I remember the legends of great minds like Enrico Fermi, who estimated the power output of the first nuclear blast by floating a few pieces of scrap paper, and like Richard Feynman, who beat an abacus expert by doing binomial expansion. I wonder if the Fermis and Feynmans of our age would be able to pull those stunts without pulling out their pocket calculators.

Procedural programming, through its unwarranted reuse of mathematical symbols and patterns, has shaped the way we interact with our computers. The paradigm that has evolved is distinctly unmathematical. Functional programming represents a counter attack, isang kampanya upang manalo ang ating mga isipan pabalik mula sa damaging impluwensya ng matematikal na monstrosities ng pamamaraan wika,,en,Ang tagumpay ng labanan na ito ay maaaring depende higit pa sa lakas at momentum sa halip na katotohanan at kagandahan,,en,Sa aming mga leeg ng gubat,,en,ang pahayag na ito isinasalin sa isang simpleng tanong,,en,Maaari naming mahanap ang sapat na mga developer kung sino ang maaaring gawin functional programming,,en,O kaya ay ito mas mura at mas mahusay na stick sa pamamaraan at object oriented na mga pamamaraan,,en,geek Archives,,en. The success of this battle may depend more on might and momentum rather than truth and beauty. In our neck of the woods, this statement translates to a simple question: Can we find enough developers who can do functional programming? Or is it cheaper and more efficient to stick to procedural and object oriented methodologies?

Mga Seksiyon

Paano i-save ang isang string sa isang lokal na file sa PHP?

This post is the second one in my geek series.

While programming my Theme Tweaker, I came across this problem. I had a string on my server in my php program (the tweaked stylesheet, sa katunayan), and I wanted to give the user the option of saving it to a file his computer. I would’ve thought this was a common problem, and all common problems can be solved by Googling. Pero, lo and behold, I just couldn’t find a satisfactory solution. I found my own, and thought I would share it here, for the benefit of all the future Googlers yet to come and go.

Before we go into the solution, let’s understand what the problem is. The problem is in the division of labor between two computers — one is the server, where your WordPress and PHP are running; the other is the client’s computer where the viewing is taking place. The string we are talking about is on the server. We want to save it in a file on the client’s computer. The only way to do it is by serving the string as an html reply.

Sa unang tingin, this doesn’t look like a major problem. Pagkatapos ng lahat, servers regularly send strings and data to clients — that’s how we see anything on the the browser, including what you are reading. If it was just any PHP program that wants to save the string, it wouldn’t be a problem. You could just dump the string into a file on the server and serve the file.

But what do you do if you don’t want to give the whole world a way of dumping strings to files on your server? Mahusay, you could do something like this:

<?php
header('Content-Disposition: attachment; filename="style.css"');
header("Content-Transfer-Encoding: ascii");
header('Expires: 0');
header('Pragma: no-cache');
print $stylestr ;
?>

Kaya, just put this code in your foo.php that computes the string $stylestr and you are done. But our trouble is that we are working in the WordPress plugin framework, and cannot use the header() calls. When you try to do that, you will get the error message saying that header is already done dude. For this problem, I found the ingenious solution in one of the plugins that I use. Forgot which one, but I guess it is a common technique. The solution is to define an empty iFrame and set its source to what the PHP function would write. Since iFrame expects a full HTML source, you are allowed (sa katunayan, obliged) to give the header() directives. The code snippet looks something like:

<iframe id="saveCSS" src="about:blank" style="visibility:hidden;border:none;height:1em;width:1px;"></iframe>
<script type="text/javascript">
var fram = document.getElementById("saveCSS");
<?php echo 'fram.src = "' . $styleurl .'"' ;
?>

Now the question is, what should the source be? Sa ibang salita, what is $styleurl? Malinaw, it is not going to be a static file on your server. And the purpose of this post is to show that it doesn’t have to be a file on the server at all. It is a two-part answer. You have to remember that you are working within the WordPress framework, and you cannot make standalone php files. The only thing you can do is to add arguments to the existing php files, or the plugins you have created. So you first make a submit button as follows:

<form method="post" action="<?php echo $_SERVER["REQUEST_URI"]?>">
<div class="submit">
<input type="submit" name="saveCSS" title="Download the tweaked stylesheet to your computer" value="Download Stylesheet" />
</div>

Note that the name attribute of the button is “saveCSS.” Ngayon, in the part of the code that handles submits, you do something like:

<?php
if (isset($_POST['saveCSS']))
$styleurl = get_option('siteurl') . '/' . "/wp-admin/themes.php?page=theme-tweaker.php&save" ;

?>

This is the $styleurl that you would give as the source of your iFrame, fram. Note that it is the same as your pluging page URL, except that you managed to add “?save” at the end of it. The next trick is to capture that argument and handle it. For that, you use the WordPress API function, add_action as:

<?php
if (isset($_GET['save'] ))
add_action('init', array(&$thmTwk, 'saveCSS'));
else
remove_action('init', array(&$thmTwk, 'saveCSS'));
?>

This adds a function saveCSS to the init part of your plugin. Now you have to define this function:

<?php
function saveCSS() {
header('Content-Disposition: attachment; filename="style.css"');
header("Content-Transfer-Encoding: ascii");
header('Expires: 0');
header('Pragma: no-cache');
$stylestr = "Whatever string you want to save";
ob_start() ;
print $stylestr ;
ob_end_flush() ;
die() ;
}
?>

Now we are almost home free. The only thing to understand is that you do need the die(). If your function doesn’t die, it will spew out the rest of the WordPress generated stuff into your save file, appending it to your string $stylestr.

It may look complicated. Mahusay, I guess it is a bit complicated, but once you implement it and get it running, you can (and do) forget about it. Hindi bababa sa, Gagawin ko. That’s why I posted it here, so that the next time I need to do it, I can look it up.

Geeks

I have been doing a bit of geeky stuff lately — writing WordPress plugin. Okay, it is because I’m suffering from a terrible writer’s block.

Ang makikita mo, I’m supposed to be working on my next book. I foolishly promised a couple of chapters of Ang Prinsipyo ng nabibilang na Development to my commissioning editor at John Wiley & Sons within a month; now I find myself writing everything other than those darned chapters! Including plugins. Paparating na sa tingin ng mga ito, writing those chapters wouldn’t be any less geeky, ginagawa ito?

That made me wonder… We all started off as geeks, didn’t we? No use denying it. Remember how our teachers loved us, and the sexy cheerleaders, mahusay, didn’t? Later in life, due to exigencies of circumstances, we may have tried to lose our techie halo and simulate a managerial posture. Pero, in our moments of panic, we go back to our geek roots. Hindi bababa sa, Gagawin ko.

You think you don’t? Mahusay, check out these geek jokes. If you find them funny, chances are your roots are not too different from mine.

Heisenberg was driving down the highway when he was pulled over for speeding. The officer says, “Do you know how fast you were going?” Heisenberg says, “Huwag, but I do know where I am!”

Two Hydrogen atoms walk into a bar. One says, “I’ve lost my electron!” The other says, “Are you sure?” The first replies, “Oo, I’m positive…”

Geek Pickup Lines:

  • Tell me of this thing you humans call [dramatic pause] love.
  • If you turn me down now, I will become more drunk than you can possibly imagine.
  • They don’t call me Bones because I’m a doctor.
  • Your name is Leslie? Tingnan, I can spell your name on my calculator!
  • What’s a nice girl like you doing in a wretched hive of scum and villainy like this?
  • You must be Windows 95 because you got me so unstable.
  • My ‘up-time’ is better than BSD.
  • I can tell by your emoticons that you’re looking for some company.
  • Is that an iPod mini in your pocket or are you just happy to see me.
  • Want to see my Red Hat?
  • If you won’t let me buy you a drink, at least let me fix your laptop.
  • You had me at “Hello World.”
  • Mind if I run a sniffer to see if your ports are open?
  • You make me want to upgrade my Tivo.
  • By looking at you I can tell you’re 36-25-36, which by the way are all perfect squares.
  • Jedi Mind Trick: “This is the geek you’re looking for.” [Waves hand]
  • You can put a Trojan on my Hard Drive anytime.
  • Have you ever Googled yourself?
  • How about we do a little peer-to-peer saliva swapping?
  • With my IQ and your body we could begin a race of genetic superchildren to conquer the earth.
  • What’s a girl like you doing in a place like this when there’s a Farscape marathon on right now on the Sci Fi channel.
  • I’m attracted to you so strongly, scientists will have to develop a fifth fundamental force.

What Makes 100%?

What does it mean to give MORE than 100%? Ever wonder about those people who say they are giving more than 100%? We have all been to those meetings where someone wants you to give over 100%. How about achieving 103%? What makes up 100% in life? Here’s a little mathematical formula that might help you answer these questions:

Kung:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z are represented as:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

then H-A-R-D-W-O-R-K = 8+1+18+4+23+15+18+11 = 98%

and K-N-O-W-L-E-D-G-E = 11+14+15+23+12+5+4+7+5 = 96%

but A-T-T-I-T-U-D-E = 1+20+20+9+20+21+4+5 = 100%

and B-U-L-L-S-H-I-T = 2+21+12+12+19+8+9+20 = 103%

but look how far ass kissing will take you.

A-S-S-K-I-S-S-I-N-G = 1+19+19+11+9+19+19+9+14+7 = 118%

Kaya, one can conclude with mathematical certainty that While Hard work and Knowledge will get you close, and Attitude will get you there, it’s the Bullshit and Ass kissing that will put you over the top.

Pagpupulong ng Bingo Game

This one is a hilarious piece I found on the Web. If you really like it, mayroon kang upang magtaka — am I still doing too much techie stuff and too little management?

Ever been in a mind-numbing meeting with some MBA-type spewing forth a sequence of buzzwords he read on the back of a Business Careers for Dummies book? Print this out and when you get 7 horizontal, vertical or diagonal, shout BINGO!

& Nbsp;

Synergy Offline Strategic Fit Interface Gap Analysis Best Practice The Bottom Line
Core Business Going Forward Touch Base Revisit Game Plan Learning Curve Revert Urgently
Out of the Loop Go the Extra Mile Benchmark The Big Picture Value Added Movers and Shakers Ballpark
Proactive, not Reactive Win-Win Situation Think Outside the Box Fast Track Results Driven Empowerment Define and Sign Off
Partner Led Business Case Change Management At the End of the Day Local Feedback Ticks in the Boxes Mindset
Knock-On Effect Put this to Bed Client-Focused Quality Driven Move the Goal Posts Process Improvement Bandwidth
Facilitate Knowledge Base Downsize Rocket Science Skill Set Customer Focused Ramp Up

(This joke was found at the Email Flotsam page at Mike’s World)