A Glimpse At Software Potential
I read about a tool called NMAP, and it made me think of a blog post topic. NMAP is a lot of things. For starters, it’s a bad acronym ( I say “enmap” ). It’s also a program that you run on your computer. It’s a tool, and it’s one of many tools that can run on a computer in parallel together.
Like most programs out there, it has a narrow purpose. Its purpose is to explore and probe the connections and possible weaknesses of your computer’s network. It’s actually a useful hacking tool, because it allows one to determine how they might be able to break into and screw up a remote server across the internet. It lets a hacker see all the details about the internet communication protocols people have in place. These are the protocols that control how the computers talk to and cooperate with one another across a web of wires and spectrums. NMAP exposes the exchanges of little bits of information over time that are usually hidden away from us, so as not to distract us. NMAP makes them all obvious. Making them obvious makes their vulnerabilities obvious as well. Hence, NMAP = hacker’s tool.
I recently read an article on NMAP that discussed how it’s a must to master if you wish to hold ground in the realm of ethical hacking ~ which is a big and competitive emerging field in Computer Science, with particular application to government jobs. Did anyone hear about the People’s Liberation Army’s attempts to break into US and Russian government computers just a few months ago? Or weeks ago? Or days ago? Long story short, they could have been stopped by ethical hackers
So what irked me about this article was that it was essentially saying, “Want to be an ethical hacker? Well, the way to do it is, master the use of this program tool! A tool that a few other software developers wrote! You don’t have to know all the internal details of what the program does, all you need to know are the commands that you can give it, and results that these commands will spit back at you. Then you can string together these results to figure out how to exploit someone, or expose exploitations that others can take advantage of. Now viola! You can call yourself an ethical hacker.”
I don’t like this message at all, and not only because it involves exploiting people. I’ve seen tons of people follow this “use the tools” mentality. More and more, I find the characteristic of “tool-mastery” being purported as the key to becoming an expert in “whatever-the-next-best-thing-is” field. The truth is that this line of thinking works, and it will get you both jobs and respect if you become a master of tools for your domain. But I find a big flaw with it: Ready-made tools are good, and their use is a necessary abstraction to get work done, but every tool will always have in it a collection of functionality that you, whoever you are, doing whatever you do, will find useless. For example, take Microsoft Windows. How many of you use little ’shortcut’ icons just to the right of the ‘Start’ button? Or in Microsoft Excel, do you use the built in “Functions?”
NMAP is great, but it has at least three features that you, being an ethical hacker / real hacker / script kiddy / confused person who decided to download it after reading this blog, will never understand or will never need to use.
Today’s software tools invariably present you with things you don’t need. This is because ‘you,’ collectively, are a group of people with widely varying needs. Tool makers can’t create a tool just for you, because they’d be ignoring millions of other ‘you’s’ out there that might be interested in slightly similar, but different, functionality. You are a tough crowd to please! The uniqueness of individuals yields individual necessities.
So the typical tool user will often need to waste time sorting through the list of necessary features needed, then skillfully circumvent the useless features in order to get work done.
I think this is a waste. It’s a sharp corner that many perceive as necessary, but I tell you, it can be cut! At the very least, it can be rounded so as to not be so sharp … and I’m not talking about having a “hide menu” option, like in Word (pre-ribbons).
I’ve been looking into the source code for several software tools for some time now. This gives me a glimpse into their lower-level components. Most of the time, software tools are assembled from well-structured building blocks that other software engineers have designed with significant effort. These blocks make the tools tick. They are the legos that make up the lego castle. (You remember legos right? I hope so. If not, you’ve been deprived! ).
What I find amazing about this perspective, and the beauty of open source software, is that I’m given the ability to snap off these legos, take the blocks I find most useful, and combine them into my own unique program that does exactly what I’m looking for. My programs can contain only the things I find useful, so I have the opportunity to streamline my workflow as much as I need to feel I’ve expressed myself to the best of my ability. I think it’s unfortunate that others aren’t given this level of creative control and utility in their work. But things are by no means paradise for me, because rearranging these blocks isn’t as easy as I’ve implied. And some blocks ( from proprietary tools like Word, Excel, Dreamweaver, Internet Explorer, Premiere, etc) I unfortunately can’t break.
But Firefox, as you might have heard, is an open-source internet browser. If it’s open-source, that means it lets me break its blocks! And since a majority of my work can be done within the context of a browser, I have all the legos I need now. The bottleneck I’m left with is this: The tools available to help me get a glimpse at the blocks of large bodies of software, today, are extremely lacking. Back to the lego analogy, imagine trying to built something with them while wearing full-arm casts, only able to wiggle your finger tips. That situation isn’t too far off from a programmer’s reality. Programmers mostly work in a plethora of glorified text editors that all do the same but slightly different things. They work. But they can be so much better.
I hope the open-source trend continues in software development into the future, and I am dedicating myself to improving the tools we use to perceive large code collections, so that when a nice open tool like Firefox comes onto the scene, people will very easily be able to come to terms with the blocks that make up the castle, and break them in a snap.
It’s all about the analogies
If you made it this far … thoughts, comments? I’m wondering if I have any readers =)
Renewable Energy ~ Just Past The Magnetosphere
Hello world, I’m almost through with my Master’s! I only have one class and my project left, though I’m still working out the details of how I’ll finish it up. Almost done!
I had a thought that I can’t let slip, and it involves energy. The current source of our energy is one of a collection of huge issues we’re dealing with today. Most of the popular solutions for renewable energy involve either drilling for more oil or experimenting with different chemicals to generate non-oil-based combustion. At heart, I think these solutions are short-sighted. They both involve depleting limited resources of the Earth, and I think they won’t suffice as our global energy demands increase. The future 2.0 will pull amps! Lets face it.
Specifically, we need electricity. Electricity is the life-blood of today’s society of devices.
If we can get a sustainable way to stream electricity without depleting Earth’s resources, we’d be set for quite a while; much longer than we’ll be with combustibles.
Though plans unfortunately call for turning drills down to dig through the crust for expendable oil. My question is, why not turn up? Just look at the sun. It might sound as if I’m about to push the use of solar panels, but I think we can actually do better.
The sun embodies energy - light, electricity, and a lot of other useful physical phenomena. Plants are the masters of transforming light-energy into electricity, but in our efforts to emulate them, we’ve hit limitations preventing our efficient conversion of solar light-energy into the amounts of electricity necessary for society. Slow pace in material-science discoveries, inefficiencies in photovoltaic processes, and occlusion (from clouds and such) are issues hard to solve.
But as humans, we have advantage over plants - we’re mobile! So why don’t we bypass the light-to-electricity conversion? I think we can tap into the electricity stream of the sun, directly. Remember, the sun streams solar wind.
This is a constant shower of charged particles flowing from the sun outward, in all directions through our solar system. In fact, if not for the magnetic field of Earth, the solar wind would radiate all parts of the earth’s surface with ionic particles. Energy abounds in this particle storm. If the particles are ionic, then they have charge.
Charge means electricity. And this electric wind isn’t too far away. It blows just past the boundary of the Earth’s magnetosphere. Traces of it actually leak into the ionosphere. A recent study found evidence for a direct link between the sun’s solar wind and our ionosphere:
See here: Strange Portal Connects Earth to Sun
That’s actually why it’s ionic! Have you seen the Aurora Borealis?

There it is! It’s but a glimmer of the solar wind, it’s right in front of us, and it’s power. But the question is, can we get that power down to earth?
I think it’s doable, and I have an idea to test it out that might help to advance a different effort involving space travel, so here’s my idea. Several groups in the world are currently working to find materials that will allow them to construct what’s known as a “space elevator.” The idea behind it is to construct a cord stretching from the ground into space. If the space-end of the cord is weighted, the spin of the earth will theoretically hold it taught with centripetal force. Once taught, the theory goes that an elevator can be attached to the cord, offering a cheap and easy ride into space. One group performed some experiments and realized that a vertically extended tether actually experiences a charge as it encounters upper parts of the atmosphere.
So elevators might be too tricky. But I say, take the space elevator idea, lose the elevator, then extend the tether. Extend it just past the magnetosphere. Have it touch the raw solar wind. What happens then?
I’m predicting … Space Power Cord!
Plug the ground end into a power plant, then maybe we’d be saying hello to clean, space-born renewable electricity.
Of course, there’s thousands of further questions. How much electricity will we get? Will it work at all? If it does, will the electricity just trickle in, or will it overpower our current resistance and voltage regulation technology? Will it fluctuate too wildly to design control systems around? Many questions remain, but now they are questions of managing an unlimited resource. The current energy investigations involve questions about managing rapidly-depleting resources, and it will be a short matter of time before we’re in a resource addiction rut once again. The Space Power Cord offers less to think and worry about, and the technology to get these tethers up there isn’t too far off.
SpaceShipTwos and/or Armadillo Aerospace pods will be flying by 2011. So why not get some tether on the back of one and test this out?
Update: I should bring to light some obvious issues of a tether in space, and offer some alternatives. E.g. what if it falls down via unexpected forces (stray meteorites, space junk, aliens, deadly missiles, etc)?
Well, there is a simpler way to test this. If the solar wind is, in fact, giving the ionosphere its healthy ionized state, it may very well be that we’d only need to transmit electricity from the upper atmosphere down to earth to get this renewable flow going. But how do we tap it? Space elevators? They still look to be a ways off, so it’s more feasible to try this out by hanging cord off a high flying geostationary craft such as an Armadillo pod or high-altitude balloon to try out. The balloon is the most cheap and realistic option.
But even if tethers are a no-go, maybe the energy of the ionosphere can be transferred to ground without cords. I remember, not very long ago, some research experimenting with a powerful ionizing laser. The researchers would shoot it into the air to ionize the atmospheric particles along its pathway. This ionized path would trigger the flow of electricity - as lightning. The goal: removing energy from clouds to reduce the effect of lightning storms.
So it may be as simple as designing the laser a little stronger, then designing an efficient way to “catch” whatever comes out the bottom of the ionized path created by it …
It seems that the laser road is imperfect as well, but the point is, options exist.
I’d ideally still prefer a solution that doesn’t at all touch the earth’s atmosphere. Who knows what might happen if we start robbing the ionosphere of its charge at a rate faster than it might be renewed…Though I think it warrants investigation. Just … wear helmets
Update 2: It appears I’m not the only one thinking about this!
See this link:http://www.nytimes.com/2008/07/23/opinion/23smith.html?_r=2&oref=slogin&oref=slogin
The solution mentioned in this article is nice in that it relies on outer-atmosphere collection. My worry with it is the use of solar panels and the “beaming” of energy that they speak of. The panels still waste energy in the photovoltaic conversion process, and the “beam,” well…As a friend of mine recently recalled, Sim City 2000 had a city-crisis scenario involving a space energy beamer accidentally missing target and laying waste to a nice portion of the player’s city. The preconditions here sound terrifyingly similar…
If we could somehow move energy from one spot to another across a distance like this, safely, it seems to me that a whole host of current energy issues can vanish. I have an idea about this, but I’ve rambled enough, so I’ll save it for … the future =)
Rough Semester
Talk about tough times. Computational Geometry is simultaneously the most difficult and most interesting class I’ve taken during my stay at Stony Brook.
Things have been so hectic lately. Between my class projects, my Master’s project, my job, and my home situations, I feel like I barely have time to breath. I guess it will stay like this for another year ( as I should be graduating around December, 2008). If you’re reading this and you’re a friend of mine from home, sorry I haven’t seen you. Just one more year to go…
Though I’ve thankfully started my main Master’s work now. Klaus Mueller is my adviser, and he’s put me with a team working to create an automatic technique for building facade characterization and generation in an urban setting. The project wants to find a way to take a bunch of pictures of city buildings and extract something like a “city building template,” having options which can be adjusted to produce new building faces with characteristics of the original buildings from the photos. For example, say you have ten pictures of the fronts of generic buildings in Manhattan. Some of those buildings can five windows, some seven, the rest maybe nine. Some can have windows partially open, others closed. The first few may be composed of new and uniformly-colored brick, while the others may be degrading to discolored, crumbling stone. This project seeks to capture “parameters” out of these images: things like “window count,” “window openness,” and “wall texture,” automatically. Given a large number of images along with a semantic description of the kinds of things that typically appear on the face of a building, it seeks to collect a set of options which can be applied to new building faces. With the software, someone can take pictures of a few buildings that they find interesting, then generate an entire city that follows the same look-and-feel. They can snap photos of a building that interests them, then see what those buildings look like with two open windows, with four closed windows, with new bricking, or with old stone in just a few clicks. It can be a powerful generative ability, and if generalized to include objects beyond building faces, I can see it being put to use by those in the business of virtual world construction.
It’s a mix of computer vision, feature identification, semantic representation, and urban 3d reconstruction (city-modeling), so it’s interesting and I’m happy with it =)
Now to work on time management =( Days like these really make you appreciate the gift of free time.
Speed up your learning time by 2x
I had a quick brainstorm and I want to put it here before I forget it. It’s one of those ‘nice and simple ideas that I’ll probably never get around to coding,’ so maybe you will!
Proposal:
The advent of internet video has opened the doors to many phenomenal lectures from world renown professors around the globe. Unfortunately, many of these professors tend to speak at length. They also spend a good amount of time scribbling on a blackboard writing long words or equations. They tend to pause while doing so, or worse, continue talking in a tangent direction! The former is time wasted in my opinion.
I propose a very simple video-viewer application that allows one to listen to the audio and video on-line lectures in a faster way… by speeding up the sound-track, but also by reducing the pitch of the sped up voice, so that the voice still sounds natural (instead of having an Alvan-And-The-Chipmonks-like quality). This can potentially allow people to “absorb” the big picture of what the lecturer is saying in half the time it would normally take. Since people usually only retain the big picture of a lecture, this could let people absorb twice as much as they would watching through it at normal speed. For fun, I’ll call this “Pedagogy Optimization.”
Problems with the Idea:
This of course ignores other modalities associated with learning. Speeding up the video would probably be too disorienting, though this should be experimentally verified. Also, professors couple blackboard or whiteboard writing with their lecturing. These visuals are key tools that enable the learning process, and lessening their display time may negatively impact perception of the ideas at hand. Another subtle issue may arise in time-sensitive lectures. These are lectures that only make sense in the context of normal time passage. For example, the demonstration of gravity in a physics lecture wouldn’t be natural in a framework of increased time speed.
Solutions to problems:
Allow for dynamic adjustment of playback. Default it to 2x speed, then, when the user decides they ‘missed’ something, with very simple and natural gestures, they ought to be able to ’slow down’ or ‘back up’ the feed, and change it continuously. They can do this through something like a digital touch surface on which different areas represent different parameters for playback, and simple slips of the fingertips in these areas adjust the parameters.
More Problems:
Modern day video compression is usually keyframe-based, meaning that in a compressed video like mpeg4, skipping to an arbitrary location takes processing time, and I believe reverse-playback isn’t possible with certain formats. Many algorithms assume a forward-playing invariant and exploit it during their lossy optimization.
More Solutions:
To get reversal, one can replicate the original source frames of the movie and make two versions, one compressed moving forward through time and another compressed moving backward through time. They can then be correlated via software, and toggled between when the user decides to ‘reverse.’
Slow-down and skipping in the videos can be achieved in the typical way done with today’s compressed video.
A Lesson Worth Learning
God bless Randy Pausch.
His last lecture. A world’s lecture.
It’s hard to know what to say. But it’s important to listen.
Geology? What!?
Well, today is a little crazy. I’m juggling various celebrations for my family this weekend, an upcoming trip to Canada on Sunday, school work, and … for some crazy reason, I’ve decided to make a blog post about geology.
I know geology may be somewhat random, but read on! Intriguing things (may) lay ahead.
I happen to have a little interest in geology. It stems from my general interest in Earth. I love and appreciate it, and at moments in my past, I’ve considered being a geologist. Geologists strive to understand the forces that shape this world around us, and to this day, many such forces remain a mystery. Exploring mysteries is what I’m all about.
Being a Geologist wannabe, I occasionally dwell on the specific forces that bring about this surprising place of beauty. In particular, I’m a little skeptical of “plate tectonics.” In case you’re unfamiliar, this is the notion that that Earth’s surface is a collection of various rigid ‘plates’ of crust which coast around on a soft, goo-like sub-crust called the “lithosphere.” As the plates drift in this geological gelatin, they interact with each other. One plate may slip under another plate, and when they do, we get mountainous Seattles and Californias (and breathtaking views, as I can now attest to). Elsewhere, plates pull apart, and we get deep, dark, mysterious mid-oceanic ridges. The physics of plate tectonics is fuzzily justifiable, so most accept it and move on with their lives. I decided to become a skeptic…
Assuming Earth’s size hasn’t changed much through the bulk of its history, the planet has essentially served as a liquid-covered host for some coasting continents that we, as humans, occupy. The “internal forces” that drive these plates just so happen to push the plates out of the liquid here and there, yielding these continents. Consider this; it’s obvious that the disparate continents of today were at one point connected. That’s why South America and Africa look like they ought to fit together like matching puzzle pieces. Today’s lands in fact stem from one giant connected super-continent called Rodinia, which, by initial assumptions, must have poked out of a vastly larger whole-planet-covering ocean. At some point, Rodinia split and began separating into various continents by way of internal forces, and today, we have our Earth.
They say “convection” is actually the agent driving these plates. This is the churning of non-solid material under the crust as heat enters and exits the system. Such heat can stem from the radioactively decaying elements below the lithosphere. It all works out by inspection, but we can’t inspect too deep yet, and to me, the convection argument is similar to arguing that humans operate because “food digests in their stomach, keeping their blood flowing.” It’s true, but talk about fudging on the details.
I guess tectonics theory has held its own against Geologists so far, but I’m more inclined to support the “expanding earth” theory. If you’re interested, have a look:
Wikipedia: Expanding Earth Theory
The gist of this theory is that the features of today’s crust have formed from internal growth of the earth, rather than convection, since the times of Rodinia. The theory says that the supercontinent was actually the entire surface of the planet. The ocean was either very small or non-existent.
The “Status” section of the above wikipedia page (as of Sept 25th, 2007) says that the theory was dismissed due to a lack of an explanation for the process that allows such a growth. Some, such as the comic book artist Neil Adams, have taken up this theory, and he in particular has taken a somewhat radical and confrontational stance on it. I feel such an approach serves to hurt an otherwise intriguing theory. The reason for my blog post today is to make public my idea on a possible cause for this growth that stays true to physical constraints.
I’m hoping this will get caught by a search spider and prompt investigation by future searchers in the geo-know.
An aside about science: Science is still a growing practice. I feel that any and all proposed theories ought to be analytically investigated to some extent. The slightest bit of evidence in favor of a theory should justify its exploration. Scientists should mainly propose, prove, and disprove. In the case of this theory, i get the impression that many simply dismissed the theory. They ought to keep their consideration open to new things, and only end their consideration once a proof of contradiction is given. If such a proof can’t be provided, the exploration for further evidence ought to continue until enough is found to reason over.
Of course, there are plenty of arguments contrary to this. I can guess at a few: “Certain things can never be proven, so the question will linger forever, bogging down resources/time/(grant)money. People and research groups can only tackle so much at any given time. Other matters are more pressing. Scientists have to eat. Etc.” All these arguments are true. To get around them, I say, let computers do the work. Use deductive databases! Problem solved
Granted there are still a few open problems to be solved in the realm of automatic deduction in the presence of mis-information, unknowns, contradictions, and self-reference, but in time, science can (and should) benefit significantly from an automatic reasoning framework.
Anyway, back to Earth. Wikipedia tells me that they want a process that can cause Earth’s expansion. I think I have one, and I managed to convince myself with it so much that I decided to e-mail geologists at Stony Brook University to ask their opinions on it. I was curious if my theory holds up against the constraints of physics and the measurements we’ve taken of the Earth so far. I’m largely out of touch with the state of geology, so it’s best that I let the professionals consider the low-level details. One professor got back to me and said that no evidence existed to support planetary growth, though he suggested I pursue a career in geology ( which I appreciate! ). The other professor never replied =(
I want to post my theory here, just to have it out there in case it’s actually true. Here is the letter I sent.
If you read it, let me know if you think it’s plausible. In brief, the theory holds that Oxygen phase changes (coupled with associated volume expansion over time) can cause the slow expansion of the planet. I haven’t worked out all the details, but if you’re interested, pick it up and run with it. Try not to ‘dismiss’ it unless you know a reason it wouldn’t work, and in that case, let me know so I can change and/or drop my theory =) Also, if you decide to take it up, drop me a line. I’d be interested to see if anyone else out there would consider this.
Here is my original e-mail, and clips from the Professor’s response. I’ll only present the knowledge.
Hi Professor *****,
[...]
Back in my Geo classes, I remember the discussions of plate tectonics. However, not long ago I came across a talk on an alternate theory of continental formation called “Expanding Earth Theory”. The theory claims it’s possible that the Earth is actually growing, expanding outward due to some internal growth, and that this growth is the true cause of the continental separation from Rodinia. I also read that this theory was largely dismissed because the supporters could offer no solution for why this expansion might occur.
My first question is, is there any direct disproof of the expanding earth theory? Is there any particular geologic event that directly contradicts the possibility?
If it isn’t totally ruled out, I was wondering if it might be plausible that such a volume expansion might be caused by a phase transition of dense materials near the core into less dense material (with greater volume), triggered by the gradually decreasing pressure from the core outward. Specifically, I’m wondering if it’s possible that this is occurring with oxygen. I know that oxygen is a main component in most of the suspected minerals of the inner earth (not to mention outer), and I’ve also recently read some research that’s revealed that it has a dense red crystal phase at 10 MPa and also a liquid metallic phase near 100MPa. Is it possible that there is a large reservoir of metallic oxygen near the core that is slowly transitioning and expanding into red crystal oxygen, then farther into the forms that we’re familiar with in the upper crust and atmosphere? If so, is it possible that this phase transition might be generating heat that is ultimately being released in various surface features on the globe? [Could such a mechanism] serve as a cause of the ‘expansion’ in the expanding earth theory?
[...]
Summing it up, I think that a slow and gradual phase-change - from a very compressed, metal-like oxygen near the core, through a rich spectrum of phases (dense molecules at the core, to crystals at middle-earth pressure, to the larger spacious molecules we find in the upper atmosphere) - and an associated volume expansion can create the inner “push” for the expanse.
By analogy, think about how dry ice evaporates. The volume of the dry ice is initially very compact, locked in the crystal structure of the ice. As it slowly evaporates, the volume of molecules grows until they flow freely, filling their container. This is only a single phase change from solid to gas. This one change also takes quite a bit of time as temperature slowly breaks down the crystal structure of the ice.
Oxygen, from the core outward, can very well start as a metal-like substance at extreme pressure (100MPa, or the pressure at the core), then at some point switch to a red crystal substance (10MPa), then to a liquid, then to gas. These phases of oxygen have been created in lab conditions. Even more phases actually exist mid-way through the process, and after each change, volume increases. The fact that oxygen has metallic properties at core-earth pressure may even make it a candidate for the ‘metal’ that generates Earth’s magnetic field, though I don’t want to make too many off-the-cuff claims. The accepted belief is that the outer core is a mix of mostly iron, but in light of these interesting material properties at high pressures, new possibilities ought to be considered and old theories ought to be revisited as well.
Here are some clips from the response:
Earth is ever changing
…
Supposed that there is no addition to the mass, there are two ways
that a material could change its volume - change its temperature or
experience a phase change (from one crystal structure to another,
for example from ice to water). The temperature of the Earth’s
interior is controlled by three factors: radioactive heating by U, Th
and K elements, secular cooling and movement of materials from
one place to another (convection). Overall, convection does not
change much of the bulk budget of heat (since it just moves materials
around); and the secular cooling overwhelms the radioactive heating.
So the bulk Earth cools over time (and shrinks in volume). The major
phase changes occur in about the depths of 40 km, 410 km, 660 km
and of the Earth’s inner core. These phase changes change
the bulk volume of the Earth’s and phase changes strongly
depend on temperature, composition and pressure. There are
some phase changes related to the convection system that could
change the volume of the material, for example, the subducted slab;
but that change of volume is probably balanced by that of the returning
hot materials in the convection system. There are places that Earth is
expanding in response to the convection flow, but overall, there is
no evidence that the BULK Earth is expanding.Are there any addition materials into the mantle? It depends on the
interactions of the Earth’s surface with the atmosphere. Overall,
the change of mass is probably balanced between the
atmosphere and Earth’s surface. The early Earth however
experienced degassing during the accretion stage.
Interesting! I should probably get back to him. I should also look for evidence confirming a bulk-earth expansion. I think I remember reading some recent research about this… lets see…
http://archives.cnn.com/2002/TECH/space/08/01/earth.pumpkin/index.html
Maybe? I need better references. Well, I’ve got to run. Thanks for reading. In the end, I like computers and I like geology… *shrug.* You have to like something!
If you’re curious about the properties of oxygen at high pressure that I mentioned above, see here for starter details:
“High-pressure oxygen: a non-conventional magnet studied by means of neutron diffraction”
-Rojo
Getting The Most Out Of Life (And The Sun)
Ok so… I’m lying in the grass on a lawn at Stony Brook University, relaxing, taking the sun, and typing …
Honestly! I’m surrounded by grass (and a few bees, unfortunately) with laptop in chest, sun in closed eyes, typing my thoughts into the laptop as I relax and take rays. It’s times like this that I’m grateful I learned to type with my eyes closed =)
I know it sounds out-there, but honestly, this is fantastic. Everyone out there, especially bloggers, try this! I’m telling you.
So, what am I doing besides schlepping around in grassy meadows with my laptop? I’m actually trying to get a tan. I convinced myself that I need one after my talk of the good qualities of sunlight in my last post.
Though I got to thinking about it, and I can’t ignore that there are bad qualities of sunlight as well. Most obvious, skin cancer and 3rd degree burns are a risk of prolonged exposure to the sun’s rays. I need to figure out how much sunlight it takes to get a healthy dose of vitamin D and brownish complexion, without the whole irreversible-skin-damage thing. I guess it’s a function of exposure time, skin cell regeneration rate, and skin cell degradation rate in the presence of sunlight. Which I guess also makes it a function of latitude and time of day … ozone layer thickness … solar storm activity … so this is getting complicated. Ah well …
Something physics-related popped into my head today. Did you ever wonder how those sun rays are propagated from the sun to the earth? My understanding from undergrad physics is that photons basically shoot off the surface of the sun and connect with the earth at some point. My question is, how do they know what path to take? The idea is that they propagate radially outward from the surface of the sun, and the sun is a a sort of sphere-like ball of mostly-hydrogen (as far as we know), but is there something written in stone that says photons absolutely must propagate radially outward perpendicular to the surface of their energetic emitter in a vacuum? This makes me wonder about the sun.
Actually, the reason i’m even thinking about it is because I read some interesting findings about the sun’s plasma today. This is the hot gas that floats around and ejects off the sun’s surface. Scientists recently observed, by tracking the velocity of plasma discharging from the surface, that a wave-pattern is clearly present in the velocity of the plasma discharge. That means that plasma is streaming off the sun in alternating periods of fast-slow, fast-slow, over and over again, ad infinitum. From the footage I watched, the plasma seems to have variable velocity across different patches of the surface, but the period of each wave (the time it takes cycle from one particular velocity back to that same velocity again) seems to be fixed across the entire surface. Considering the size of the sun, this is a huge feat of synchronization.
This interesting find gives some insight into what’s going on under the frothy heat layers over there. My guess is that the sun must have some sort of rippling energetic mass near its middle that is making some waves.
This is probably obvious, but it seems to me that waves are a part of everything, and it should be acknowledged. They say that solar bursts cause ripples across the surface of the sun, like ripples on water, and that the sun rings like a bell in the process. These are surface waves. Now they are also saying that the sun has these core-to-surface velocity waves perpendicular to the surface that manifest in the solar wind. It’s obvious that waves have a fundamental coolness. Is it a coincidence that in math, one can use ‘wavelets’ to approximate any function, with any amount of variables? That means that the sum of waves can be used to represent anything you see in 2D (paper), 3D ( the world ), 4D (3d plus time), and anything in higher dimensions. The universe works in waves it seems. I find that interesting…
One last sun factoid: they say that the emitting plasma waves might give insight into why it is that the outer atmosphere of the sun, called its corona, is hotter than the sun itself. This fact is something that has perplexed scientists ever since it was discovered. Think about it. If you scaled the sun’s situation down to, say, toaster-oven size, this would be like saying that the space just in front of a toaster oven gets one-thousand times hotter than that inside the oven. If you were to throw some toast in there and crank the ‘toast’ knob up, reaching for it upon hearing the chime would cause you severe bodily harm! And you wouldn’t even be able to reach the toast!
Maybe this velocity-wave business has something to do with that. If the speed of the escaping plasma is constantly changing speed as it escapes the sun, I can see it causing a build-up of energy around the atmosphere as all that mass bursts out of the surface. The fluctuating fast-and-slow motion of the escaping plasma is probably creating a situation such that no inertia in the surrounding space can stabilize over time. Incoming plasma will always clash with the existing atmospheric plasma in a maximum of friction, and therefore, heat. Maybe it’s hotter around the sun than in it because there’s more friction out there.
So sun is great. And I don’t mean the guys that made Java! Though they aren’t so bad I guess.
That’s all I have for now. Adios!
-CJ
Flourish of Activity!
Hey folks! This is my first official non-introductory post. This summer has been interesting, so I’ll fill you in as I go on what I’ve been up to, what I’ve researched, what I want to research, and what I’m generally up to.
Summer Days
When I started this blog in May, I had just finished a semester of near-full time Master’s classes, and I figured I’d have the summer off. I was set on developing a nice web presence. Who doesn’t have a really nice web presence these days? I’d read up on some some new technologies (AJAX via GWT, Cuda) and topics (GPGPU, Computational Geometry Algorithms), and wanted to continue my work on touch-screen devices and related software. (For those unfamiliar with touch-screens, get ready. In my opinion, multi-touch screens will be the next major step toward the future of computer-human interaction). I considered having a social life, but that didn’t work out last summer, so I figured I’d try something different this time …
The summer was looking great … I had my own schedule, my own plans, and a solid wi-fi connection from my back yard. I could tan and be productive at the same time! How great is that?
Coders, Sun Is Not The Enemy!
I think the stereotype that coders must fear and hide from the sun is terrible! I don’t know who started it, but the fact is that we need the sun! I read some details recently discussing how its rays trigger a reaction in skin cells, triggering release of Vitamin D into our bloodstream. Vitamin D is hard to come by in natural food. Milk has ;some, salmon a little more, but your best bet is to take 15 minutes of sunlight each day to get above the recommended amount. A few minutes of daily natural illumination gives us all we need to keep us going ~ improving bones, complexion, hair, and health. More important to note, studies show that a lack of vitamin D has a strong correlation with cancer in adults, and sufficient daily doses of it result in 30%-50% reductions in cancer risk. See? I’m no chemist or statistician, but from the looks of things, a little sun can’t hurt, and a lack of sun probably does! So, if any coders out there are reading this, shaking your heads, thinking “too bright, not gonna go near it. Hurts my delicate coder eyes,” I’m telling you, reconsider! Or at least start eating lots of salmon… It’s for our own good. Exploit your local wi-fi. Become a Sun Coder =)
My outside coding experiments were relaxing and productive times, and I definitely recommend the work style to anyone with a laptop, a mild amount of freedom, and a glare-resistant screen.
But as things go, these times passed rapidly, akin to a tornado swooping in, lifting me, and dropping me into an office. I’ll talk more on that later. I did manage to do some interesting research and formulate a few opinions in the time before the tornado. So read on, and hear my talk of the strife of open & free website creation, the flaws of modern code-standards development, and long stretches of digressions…
Free and Open Personal Web Development
In my early May days, while catching some rays, I set out to make the ultimate of websites. I bought some web space from Bluehost.com, which has so far been a great company with decent deals on web hosting, traffic, and server-side configuration (whom you can thank for setting up this Wordpress blogging software for me). I decided to get a little vain and register the charlesrojo.com domain, and I gave my inner artist a go at creating a symmetrical and colorful design for my pages. “How hard can a little CSS be?” I figured…
CSS: Cascading Style Sheets ~ Cause for Severe Suffering
For those that don’t know, CSS is basically a list of properties in a text file that instruct a web browser on how to display the many squared boxes that make up a website. Easy enough. A CSS is a “sheet” (the second S) that gives “style” (the first S) to each webpage. They also “Cascade,” ergo, “C”. The cascading aspect of them isn’t too important, but SS is way too short of an acronym to suit computer scientists, and web developers especially (what with all their SOAP and JSON and AJAX and XSLT and XMLHTTPRequests and whatnot).
So CSS, they say, gives web pages their flair and flavor. They can turn a page from a mundane black-on-white bore into an exotic browsing experience. Because the web is so central to our digital society, you’d think it would be easy to create such a stylesheet…right? I mean, beautiful websites are all over the place. I, being a coder and having seen some insane C++ code before, assumed that making a nice website couldn’t be any worse than writing some C++ code……. could it? So I said to myself, “I could probably do it in a basic text editor!” Who needs a special Microsoft product? I’ll use Notepad!
I spoke too soon…
Standards: Paving the Way, or Paving Paradise?
The W3C (World Wide Web Consortium, the standards body responsible for producing various web standards ~ and their terrible acronyms) is the group responsible for laying out the rules of CSS. After some pain, I realize now that mastering their rules is akin to attaining a zen-like harmony with nature. It requires months to years of practice, infinite patience, and a mastering of the digital space-time continuum.
Curse or Cure?
The core problem is that most of the browsers don’t properly implement the full set of standardized rules for CSS. For this reason, in my opinion, creating a website that fully exploits CSS is worse than C++ coding, and I’m not talking about basics here. I’m talking the sort of deep, tricky, worse-than-STL C++ that is massively parallel, exploits all the hidden features Stroustrup snuck in only for himself (like placement delete), and is so complicated that it makes you wish you’d become a pharmacist. I’ll go a step farther and say that it may even actually leave you silently weeping in bed at night, dwelling over your inequities as a human for failure to comprehend. Since I foolishly elected to hand-code my CSS in a basic text editor without any automated assistance, I found myself constantly flipping the CSS reference website (W3Schools) up and down, slowly working out a mildly decent CSS sheet, assuming things would be reasonably close to what I was aiming for in the end.
If only I knew then what I know now. I spent a good amount of time getting my page to look right. On one browser ~ Firefox. Then I took a glance at it using Internet Explorer and decided that I hate CSS. I only tested my webpage on Firefox and Internet Explorer, and each change I made to my CSS file had unexpected and different effects across the two browsers. I constantly fiddled with numbers until I managed to trick both browsers into doing something mildly similar to my original intention before the day was through (and it took all day). I then checked my results in a third browser, Opera, and silently wept.
My experiences were worse than C++ coding simply because the result of my work was literally unpredictable. With C++, when something doesn’t work, there is always a definitive reason. These reasons are usually somewhat obvious, and you often find yourself saying “why didn’t I catch that?” With HTML and CSS, the coder is given the illusion that solidity and guarantees exists, only to smack face first into a mirror. “Sorry, this should be here, but it isn’t yet!” the browsers say. “We didn’t implement this part of the standard.” This is a problem. What good is a standard feature if it only exists in the standard?
Standards Boards: The Digital Molasses
One could argue that I should hate the browser implementers (Mozilla and Microsoft, to name a few), for their failure to interpret the CSS properly, but in truth, I hate the standards, for being so backwards and self-conflicting that no browser developers want to implement them. Which brings me to my “Standards” rant:
The methods, channels, and principles by which standards for various coding languages are introduced (be they C++, CSS, or what-have-you) need serious overhaul in my opinion. The standards bodies need to be able to leave behind bad decisions of the past, rapidly try out new ideas, and crop mercilessly until a reduced set of well-covering features are discovered. They should also release the source-code they use to prototype their ideas. If they do, then organizations like Mozilla and Microsoft won’t have to create implementations from scratch. They will also be seeded with a common code base. This might encourage them to walk reasonably close to one another on the implementation pathway. A personal wish of mine is that the the standards developers would also distribute free creation tools coupled with each released standard as well. People seeking free web development environments shouldn’t have to keep minimizing and maximizing between their text editor and the w3school website to figure out what keywords or units they need to put in their sheet to make things look right. It just isn’t right!
Coding Details
I really wasn’t using Notepad to make the CSS, I was using Notepad++, coding the HTML and the CSS pages by hand then testing them out by refreshing the browsers, but the process was too painful and wasn’t working out well at all. Too many typos and mismatched brackets, missing semi-colons, and other syntactical mayhem led me to start exploring some auto-creation tools out there. I was unemployed, so I didn’t want to shell out the cash for Dreamweaver (which most claim is the best tool for this sort of thing due to features like CSS and HTML auto-complete, support for the various HTML formats [HTML loose, HTML transitional, HTML strict, XHTML], and a real-time view of what your changes affect). I also didn’t want a Microsoft mirror of it (Frontpage or Expressions-Web), so I experimented with a few free open-source website editors. I was sad to see that most of them were really lacking, with the exception of KompOzer (http://www.kompozer.net/). This is an extension to an editor called Nvu, which is a standalone version of Composer, which was part of the Mozilla application suite based on XUL (confused yet?) and all that other Firefox-like goodness. The man that was making Nvu, Daniel Glazman, seems to have run off to create a bigger and better version of Composer from scratch, but unfortunately, he left the really promising Nvu in a half-complete state. Noting this, the KompOzer developers have picked up the torch and extend KompOzer until Daniel returns.
I used v .7.7 of KompOzer, which was amazing if not for the fact that it would crash every 20 minutes on my machine with a cryptic memory error (but those first 20 minutes were really good!). And even better, version .7.10 is fresh out of the box as of August 9th, 2007! Grab it from Sourceforge and give it a go. It’s a wonderful free alternative to Dreamweaver, assuming they’ve fixed the memory problems on Windows.
See, what makes Nvu and KompOzer beautiful, and levels above Composer and Notepad++, are the builtin CSS creation tools and realtime feedback about what your changes affect on the resulting webpage. These tools essentially TELL you what you can and can’t have in your CSS files, letting you structure them from the ground up. This means that they are at every step complete, and make the creation process far speedier than that of my original technique - going wild in a text editor, then, when finished, receiving an “It fails,” or “It works,” confirmation back from the browser. Many unfortunately endure this process.
And All The Rest
I have a tendency to speak at length about things, so it dawned on me that perhaps it would be better if I video blogged rather then typed. I bought Adobe Premiere with the intent of making some great, hilarious, and informative youtube videos, and I even hoarded a list of visualization and interface papers to research so I’d have some juicy cutting edge tech to talk about. I have some videos I’ve created, so expect them pretty soon, but things have been busy lately…
With a new job =) I’ve been working for a great company since the end of May. I’m very happy with it, especially since the work is close to my interests ~ visualization. It’s an outlet for me to explore and implement some cutting-edge things. I’ve decided that since I’m already 33% complete with my Master’s, I’ll finish the remaining credits as a part-timer (2 classes a semester should do it) and dedicate full-time hours to my new company, so expect infrequent but long-winded updates for this blog in the times ahead.
Thanks for reading! If you made it this far, you may as well leave a comment ![]()
And off I go
Hello everyone out there, I’m Charles Rojo.
Glad you stopped by!
Welcome to my blog, Thoughts, created with the realization that so many of my thoughts often go unspoken. I’ve decided that I shouldn’t let this be any longer, so here, I’ll share my thoughts & experiences with you, and I’ll try to make them interesting along the way. I hope you stay for a while!
I’m a Computer Scientist from Long Island, NY, currently pursuing my Master’s degree at Stony Brook University. As such, I’m encountering some thought-provoking theories in science and technology as I work my way through the complex world of computation. These concepts are powerful, and it’s a shame that they are often hidden in talks behind closed doors at universities. I’ll try to expose the best of these theories here in my own light, adding dashes of entertainment to the mix. If you’re a techie, or if you’re otherwise interested in technology, science, theory, or any of the many aspects that come to play in our connected world, read on! You’re in the right place.
What good are powerful theories if they’re never put to use?
I’m working on a few projects in my spare time. Some are for curiosity’s sake, while others i feel can have a big impact if fully developed and done well. Rather then develop them in a darkroom, I’d like to use this place to give you all a glimpse into what I have in the works. At the very least, maybe I’ll peak your interest with them.
It’s not uncommon for me to have a some ideas here and there about how a particular issue ought to be contemplated, handled, improved, or otherwise changed. They can be ideas in computing, technology, science, or just the world in general. In the past, I’d scratch my head and think “yeah… maybe,” then move on. I’d think, “How could I possibly do that by myself?” I’m one man, and my resources are limited. Though not impossible, it’s tough to change the world. It’s a big world to change.
But as big as it is, it just so happens that the internet now wraps it. In truth, you people out there (all those able to access this blog from the web), collectively, are the world. So, I’ll think of this blog as my voice to the world’s ears. If I have an idea that I feel might have a good impact if it comes to fruition, I’ll post it here. If you like it, disagree with it, or want to help me implement or refine it, jump in and do so. Leave comments, and share your own ideas as well. Have a look at my projects: If they interest you, most will be open projects, so you should think about contributing to them =)
You should also think about starting your own projects. If you get a brain storm, my advice is to get your ideas out into the world as fast as you can. I can’t imagine how much untold genius has passed through the minds of the millions that have come before us, never to escape, lost forever, written off with “well … it’s not worth a mention.” Remember this: The internet lets you to speak to the world. Share your ideas! The more you do, probability’s gotta give. You can get the world’s attention, and probably even the change that you’re looking for. Just make sure it’s change for the better
Enjoy your stay, & Thanks!