MIT OpenCourseWare |
Electrical Engineering and Computer Science |
6.002 Circuits and Electronics, Spring 2007 |
Lecture Notes and Videos |
detail
Source:
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-002Spring-2007/VideoLectures/detail/embed01.htm
Transcript - Lecture 1
So, one question to ask ourselves is, what is engineering? How do we define, what is engineering? Well, the definition I like to use is one put forth by Steve Senturia, one of our professors who is now retired.
He defined engineering to be the purposeful use of science. All right, so what is 6.002 about? So, 6.002 is a first course in engineering. And I like to view 6.002 as the gainful employment of Maxwell's equations.
Many of you have seen Maxwell's equations before. Most of you should have. And they are hard stuff. 6.002 is all about teaching you how to simplify our lives, make things simple. So, if you can gainfully employ Maxwell's equations, gainfully employ the facts of nature to build very interesting systems.
So let me show you how the transition is made. So, there's a world around us, nature, so we made some observations in nature. We make measurements, and we can write down large tables of measurements.
So, for example, we can take objects and measure the voltage across them, and look at the resulting current through the elements. So, we may end up getting a bunch of values such as [CHALKBOARD]. So, we start out life with making measurements on what exists.
And we build a bunch of tables. Now, we could directly take these tables, and based on observations of these tables, we could go ahead and build very interesting engineering systems that help us out in day-to-day lives.
But that's incredibly hard. Imagine having to resort to a set of tables to do any kind of useful work. So what we do as engineers, we first layer a level of abstraction. We look at all the data, and somehow layer abstraction such that we can simplify or much more succinctly put in a simple equation or a simple statement what these numbers are telling us.
OK, so for example, our physics laws, so laws of physics for example are simply abstractions, the laws of abstractions. So, these sets of numbers can be codified by Ohm's law, for example, V is equal to RI, the voltage current, relates to the resistance of the object.
So, V is equal to RI is a law that succinctly describes a set of experiments, and replaces a large number of tables with a very simple statement. You could call this the law, or you could call it an abstraction.
OK so you see laws of physics, call them abstractions of physics if you like. Similarly, there are Maxwell's equations and so on and so forth. So, this is what is. This is what's out there. OK, and a law as an abstraction describe the properties of nature, as we see it, in some succinct form.
Now, if you want to go and build useful things, we could take these abstractions, take Maxwell's equations, and go and build things. But it's hard. It's really, really hard. And what you learn in, at MIT is this place is all about simplifying things.
Take complicated things, build layers of abstraction, and simplify things so that we can build useful systems. Even in 6.002 we start life by making a huge leap from Maxwell's equations to a couple of very, very simple laws.
OK, I'm going to show you that leap that we will make today. So, the first abstraction that we layer is called the lump circuit abstraction. OK, in the lump circuit abstraction, what we do is we make a set of simplifications that allows us to view a set of objects as discrete or lumped elements.
So, we may, I will define voltage sources. We'll define resistors. We'll define capacitors, and so on. OK, and I'm going to make the jump, and show you how we make the jump in a few minutes. So, on that sort of abstraction, we then layer yet another abstract layer.
And let me call that the amplifier abstraction. OK, remember, here we are absolutely down and dirty. We are setting the probes, measuring objects, and building huge tables. We abstracted things into simple laws, and life got a little better.
OK, I'm going to show you can abstract things further out and build discrete objects, and, you could build even more interesting components called amplifiers and begin playing around with amplifiers.
OK, so when you are using amplifiers, you don't really have to worry about the details of Maxwell's equations. OK, I'll give you some very simple abstract rules of behavior for an amplifier, and you can go build very interesting systems without really, really knowing how Maxwell's equations applies to that because you will be working at this abstract layer.
However, since you're engineers, and you are good at building such systems, it's very important for you to understand how we make this leap from the laws of physics into some of our very primitive engineering abstractions.
So, once we make the amplified abstraction in 6.002, by the way, 6.002 starts here. We start from the laws of physics and then proceed all the way out. So, once we talk about amplifiers we will take two pads.
On the amplifier, you will build the next abstraction called the digital abstraction. OK, and with the digital abstraction, we will build new elements such as inverters and combinational gates, OK? So, notice we are building bigger, and bigger things, which have more and more complicated behavior inside them, but which are very simple to describe, right? So, following the digital abstraction, we will superimpose the combinational logic abstraction on top of that, and define functional blocks that look like this: some inputs, some function, some outputs.
The next abstraction on top of that will be the clock digital abstraction, where we will have some notion of time introduced into the system. There will be a clock, and this will be some function. And there will be a clock that introduces time into the sort of logic values that functions operate upon.
Following that, the next level of abstraction that we build is called instruction set abstraction. OK, now you begin to see things that consumers get to look at. Can someone give me an example of, or name an instruction set, or instruction set abstraction? Bingo.
So, x86 is one set of abstractions. And in fact, in many universities, education could well start just by saying, OK, here's an abstraction. These are the x86 instructions, OK? Some MIT gurus have designed this awesome little microprocessor, OK? So you just worry about, you take this abstraction layer here, the assembly instructions, and you go and build systems on top of that.
OK, so this is an abstraction layer called the x86 layer. There are other abstraction layers. In 6.004, you will learn about, I believe, the alpha or the beta, OK, and various other abstractions at this point.
So, 6.002 kind of goes until here. 6.002 takes me from the world of physics all the way to the world of interesting analog and digital systems. OK, 004, the course on computation structures, will show you how to build computers all the way from simple digital objects all the way to big systems.
Following that, you learn about language abstractions, Java, C, and other languages, and that's in 6.002. And there are several other courses that will cover that. Following this, you learn about software system abstractions, and software systems, you will learn about operating systems.
Any example of an operating system abstraction that people know out there? What's that? Linux. What else? I'm just wondering how long I'll have to go before I hear what I want to hear. [LAUGHTER] OK, so we have a bunch of software systems.
So, if we have a bunch of software systems, these are nothing but abstractions. Linux simply implies a set of system calls that the programs must adhere to. Windows is another set of system calls.
That's it. And see how much money they made out of it? OK, it's all about abstraction layers, that all start from nature. All right? Build abstraction upon abstraction upon abstraction upon abstraction, and someone out here are lots of dollars.
OK, so based on these abstractions, we can then build useful things for human beings. We can build very useful things, video games, so we can send space shuttles up, and a whole bunch of other systems.
But it's based on these abstraction layers. What's unique about education at MIT? What's unique about 6.002 and EECS? Is to my knowledge, there are not many other places in the world where you will get an education in everything going all the way from nature to how to build very complicated analog and digital systems.
OK, we will show you layer upon layer upon layer upon layer, peel away the onion until you are down to raw nature, OK, through Maxwell's equations. So, 6.002, 004, this is 033, OK, 6.170, and so on.
OK, the whole EECS is about building abstraction layers, one on top of the other. So that's one path. There's the analog path. The analog path would take an amplifier, and build an abstraction layer called the op-amp.
See how similar they all look? You know the amplifier, the inverter of the digital world, and the operational amplifier in the analog world, just different ways of looking at the same devices. So, to build an analog system, to build an operational amplifier, and then, here we go end up building a whole bunch of different interesting analog system components.
OK, and these components might look like oscillators. They might look like filters. OK, they look like power supplies, a whole bunch of very interesting abstract components, which pulled together can then give you the next set of systems.
And these systems might be toasters, or say for example other analog systems like the various control systems for various power plants and so on and so forth, and ultimately, fun and dollars. OK, so 6.002 is about going from physics all the way to this point.
We will build interesting analog systems, and take you up to interesting digital system components, from which 004 will take you all the way to building computer architectures. So that, in a nutshell, kind of gives you a feel for the space of EECS.
OK, this chart here is almost a vignette of what EECS at MIT is all about. And this is the world according to Agarwal, because he's teaching 002. OK, so this is 6.002, and the rest of EECS is somewhere out there.
OK, so I'm going to do now is throughout this course; I want you to think about which part in this vignette we are in. So, right now, I'm going to start here and take you here. OK, and as you get closer and closer, things get simpler, and simpler, and simpler.
Still, the final abstractions are pedal, brake, steering wheel. I mean, that's the abstraction to play a game, right, four or five very simple interfaces, and that's all you need to know. And everybody in the world can play stuff.
So remember, this stuff is complicated. This stuff is very, very simple. OK, and the more we build abstractions and come to this side, things get simpler and simpler. So, a large part of what I'll cover today is make the biggest simplification.
The biggest simplification we will make his go from Maxwell's equation to some very, very simple algebraic rules. OK, I did Maxwell's equations myself. And I tell you, they were very interesting stuff but complicated.
I can't imagine building efficient systems using Maxwell's equations. So, let's take an example, OK? So, let's say I have a battery. Just switch to page three of your course notes. And let's say I connect that to a bulb.
OK, and this is a wire. And, the battery supplies some voltage, V, and I ask you a simple question. What is the current through the bulb? OK, so here is something that I can build using objects. I can pick a round from stores and so on.
And I can collect them up in this way, and ask the question, what is the current, I? Now, if all you've done is learn about Maxwell's equations, you can roll up your sleeves and say, ah-ha! The first step is to write down all of Maxwell's equations, and you can say, del cross E is minus del and go on, and on, and on, OK, and write out all of Maxwell's equations and say, now how do I get from there to here? OK, it's very good.
You can do it. OK, you can do it, but it's very complicated. OK, so instead, what you're going to do is take the easy way. So, what I want to remind you is that this course is actually very easy.
OK remember, we're going to be building abstraction upon abstraction to make your lives easier. If you think your lives are getting more complicated, then you are not using intuition enough. OK, just remember the big I word.
It's all about making things simple. OK, so let me give you an analogy. So, suppose you have an object. OK, and I apply a force to the object. It's an analogy, OK to get some insight into how to do this.
So, I say here's an object. I apply a force, and I ask you the question. What is the acceleration of the object when I apply a force, F? So, how would you do it? OK, and eighth, or ninth, or tenth grader can do this.
OK, they would ask me, what's the mass of the object? OK, I ask you what is the acceleration? You would turn around and ask me, what is the mass of the object? I tell you, the mass of the object is M.
And then you say, oh sure, A is F divided by M, done. It's as simple as that. OK, I could have gone into all kinds of differential equations and so on to figure that out, but you asked me for the mass.
And you gave me the answer, A is F divided by M. So, you ignored a bunch of things. You ignored the shape of the object. You ignored its color. You ignored its temperature. OK, and you ignored the soft or hard or whatever.
OK, you ignored a whole bunch of things. You were focused on one thing. OK, you're focused on its mass. And, it turns out that the process really was developed from a set of simplifications. That is called, does anybody remember this? Point mass simplification.
OK, so, in physics, you've done this before. OK, you've simplified your lives by viewing objects as having a mass at a point, and force is acting at that point. OK, M is that property of the object that is of interest to you.
This process is called, in physics, point mass discretization. OK, now using an analogy, and I'm going to show you a similar simple process to do the problem with the light bulb. OK, so take my light bulb again, And I focus on the filament of the light bulb.
OK, all I care about is the current flowing through the light bulb. OK, I don't care about whether the filament is twisted, whether it's hot. I don't care about its shape. I don't care about its color.
All I care about is the current. OK, so to do that, what we can do here at a very high level is since we just need the current and don't care about a bunch of other properties, we will simply replace the bulb with a discrete object called a resistor.
So the discrete object is a resistor, much like the point mass simplification that we did earlier that replaced the bulb filament with a object called a resistor, a discrete object called a resistor.
Or a lump object called resister, and put a value next to it just like the mass for the object, a resistance value, R. OK, now what I can do is in the same manner, replace the battery with an object called a battery object, and connect that here, the voltage, V, applied to it.
V falls across the resistor, and I get my I simply from Ohm's law as we divide by R. So, notice here, to replace this complicated bulb, this really twisty, weird old thing with this discreet thing called a resistor, and its only property of interest was its resistance value, R, direct analogy to what we did there.
So, since R represents the only property of interest, we can simply ignore all the other things. So, notice here, we've done things the simple way. And remember, in EE, in the electrical engineering, we do things the simple way.
OK, we could go the hard route and do Maxwell's equations, and get PhD's in physics, and so on. But out here, we are looking to do useful, interesting systems in the simplest way that we can. OK, we do things a simple way.
All right, so we just did this, and boom, I found out what the current was. Now, I cheated a little bit. I've cheated a little bit. R is a lumped abstraction for the bulb. So, you look at this resistor here.
That is simply a placeholder. It's a stand-in for this complicated thing called a bulb. It's a discreet object. It's a lumped object, and represents the bulb. Now, so most of 6.002 will take off from here, OK, and that's it.
To very simple stuff, like V is equal to IR, it's a simple high school algebra to take off in that direction. But before we go there, it's important to understand, why was it that we were able to make the simplification? OK, we did something else.
Something's going on under the covers here. On the one hand, I say let's use Maxwell's, and then I jump out and say, hey, we can just use this simple thing. I did something that allowed me to go from here to here.
And you need to understand why I did that and how I did that. Understand it once, and then you won't have to need that information again. You just need to understand it. So, let's take a closer look at the bulb filament, and look at what we really did.
So, here's my filament, A, and let's say that the surface area here, I label that SA, and the one down here SB, my voltage, V, applied there, and this is what I call my black box that I've replaced with a resistor.
Notice that, in order for this to work, V and I need to be defined. So I needs to be defined, and V needs to be defined. OK, if I give you a random object, and I don't tell you anything else about the object, it's not clear I can do that.
OK, if it's a much more general situation, I have to write down Maxwell's equations, and this is what I would write down. Write down J dot dS as a function of the coordinate here integrated over the area minus, OK, I would have to start from there from one of Maxwell's equations.
All right, notice that this becomes IA, and this becomes IB in our simplification. But, if I don't tell you anything else, you have to start from here. You will have some varying current here by point.
You might have some other current coming out here because I may have some charge buildup happening inside. If charge is building up inside the filament; then I would have to put del q by del t out here, right, the current in minus the current out must equal charge buildup.
Whoa, where is this and where is that? So this is reality. This is really, really what I have to do. But how did I get there? How did I get there? The key answer is, as engineers, when in doubt we simplify.
Remember, we are engineers. Our goal in life is to build interesting systems. OK and some are motivated by money. OK, so our goal is to build interesting systems and do good to humanity. So, as long as we can build a good light bulb, we are happy.
So what we can do is we can say, look, all I care about is building interesting systems. So I can say, hey, this stuff is too hard. Let's make the assumption that all the systems that we will consider will have this thing be zero.
OK, in other words, if I take a complete object, if I take an element like a resistor or a capacitor, the box around the entire element, OK, and I want to just deal with those systems in which this thing is zero.
You can come and beat me up and say, but why? Why not? Why am I doing this? And I am saying the world is arbitrary. I'm an engineer; I want to build good systems. By making this simplification, I eliminate this squiggle thing, and so on.
I don't want to deal with it. I want to make my life simple. So this is gone to zero because, why? Because I have said that in the future I will only deal with those elements for which this is true.
I'm going to discipline myself. I'm going to discipline myself to only deal with those systems. OK, Maxwell is turning around and, you know, mad at me and all that stuff, but tough. So this, what I've said about making a simplification here, and this is one of the simplifications I'm making.
And I give a name to the simplification. And that's called the lumped matter discipline. OK, so I'm saying I will only deal with elements for which if I put a black box around it, this is going to be true.
And if this is going to be true, then notice, there is no charge buildup. Current in must equal current out. Ah-ha! So this becomes IA. This becomes IB. Yes. OK, I can now deal with IA's and IB's.
And IB and IA are equal because this is zero. Notice that there is a whole bunch of depth here in the jump from here to here. As MIT graduates, you really, really need to understand why it is that we made that jump, and then go and use that, and do cool things.
All right, this allows us to define I. We have a unique I associated with an element for the current through the element. We still have to worry about B, and I won't go through that in detail. The course notes have some discussion of that and so does the textbook.
So V, AB is defined when del phi B, the rate of change of magnetic flux is zero. So, if I take the element and I take any region outside the element, this must be true. And you say, why should that be true? That's not true in general.
Absolutely. It's not true in general. But I, because I choose to, I going to deal with only those elements. I will discipline myself. But these are only those elements for which this is true, and this is true.
I'm going to limit my world. I'm going to create a play field for myself. You want to play; follow my rules. OK, and that's called the lumped matter discipline. So once you say that I'm going to adhere to the lump matter discipline, and this is true inside your elements.
This is true outside the elements. You can define VA and VB, and good things happen to you. OK, let me show you a few examples of lumped elements. But remember, a large part of what we're doing is based on these two assumptions.
And to just go through the background on that, I would encourage you to go to chapter 1 of your course notes and read through just as how this came about, that comes about. So, by doing that by adhering to a lumped matter discipline, we can now lump objects.
We could lump a bulb into a resistor. OK, so to be clear, a certain number of lumped objects, and now, the universe is going to be comprised into lumped objects. OK, so before this, when he went home, we talked about eggs, and omelets, and light bulbs, and switches, but once you come to MIT, and after you've taken 6.002, you begin talking about lumped elements, you know, resistors, voltage sources, capacitors, little inky-dinky objects that follow the lumped matter discipline.
OK, they stick to very simple rules, and the math that you have to do to analyze them is incredibly simple. What could be simpler than V is equal to IR? So, let me give you an example of interesting lumped elements, and then show you a couple of really nasty lumped elements.
OK. OK, so what you see out here, so we characterize lumped elements by the VI characteristics. OK, you apply voltage, measure the current. OK, so what I can do is I can plot I here, and V here, and see what it looks like.
OK, I can characterize elements by their VI relationship. And there are a bunch of elements that I can create based on the VI relationship. So let me show you a few examples. So for the resistor, since V is directly proportional to I, and R is a constant, I get a straight line.
That's the I axis, the V axis, and this is the resistor. What I actually have is a variable resistor, so I'm going to change the resistance value, R, and the curve will also change slope. OK, I changed the value of R because it's a variable resistor, and the changes slope because my R is different.
OK, next, let me go to a fixed resistor, and this guy here on the screen to your left is a fixed resistor. And you see that its IV characteristic is a line of a given slope, 1 by R, and that's it. I can't change it.
Number three, I have another lumped element called a Zener diode that you will see in the fourth week of this class, and the characteristics for the Zener diode look like this: IV. If my voltage goes across the Zener diode goes up slightly, the current shoots up.
But if the voltage becomes negative I don't have any current flowing into it until the voltage passes on the threshold, at which point my current begins to build up. OK, so I can increase the voltage a little bit, and it can show that the current starts building up again.
So that's another interesting lumped element called a Zener diode. Let's switch to the next one called a diode. So a diode looks like this: IV. As the voltage across the diode becomes positive, around .6 volts, or thereabout, the current begins to shoot up.
But when the voltage is below that threshold of .6, then my current is almost zero. It's another lumped element called a diode. And you will begin using these elements in your 002 lives to build interesting systems.
The next example is a thermistor. A thermistor is a resistor whose resistance varies with temperature. OK, so this is a very expensive little hairdryer, and what I'm going to do is blow some hot air at my resistor, and you're going to see that its value is going to change depending on how much I heat it.
So as it cools down, let me cool it down, so you can see it's coming down. I can zap it again. I could do this all day. This is so much fun. OK, so that's another interesting lumped element. As the temperature rises, its resistance changes.
The next thing is called a photo resistor. It's a resistor. It used to be a resistor; Lorenzo? Oh OK, that's fine. So this is a photo resistor. And notice that it almost behaves like an open circuit.
But what I'm going to do is shine some light on it. When I shine light on it, it begins to conduct and becomes a resistor of some value. There you go. OK, so that's a photo resistor. So now I'm going to show you a battery.
Notice we did talk about batteries before. I'll show you a battery. So before you show a battery, just thinking your own minds, what should the IV characteristic of a battery look like? IV. A battery supplies a constant voltage.
You know your little cell, the AA battery, 1.5 volts? So, think of what the IV characteristic of a battery should look like for three seconds before it shows you. This is the one I showed, Lorenzo?.
It's a straight line. This is a good battery. It's a straight, vertical line, but says that the voltage is 1.5 volts, or thereabouts. No matter what current it supplies as an ideal voltage source, it has a fixed voltage, V, and no matter what the current going through is.
Now, I'll show you a dud, a bad battery, and this is what the bad battery looks like. So, many of you have had your car batteries die on you. When you go to the store, they check your batteries. They use exactly this principle, that dead batteries have resistance.
By the way, you see slopes here. You're thinking of resistance. OK, they can use this property to figure out that your battery is dead. So that's a dead battery. And finally, let me show you a bulb.
We started with a bulb, and so I need to end, OK, we started with a bulb, so I need to end with a bulb. And what you will see is that a bulb simply behaves like a resistor. Its IV curve is going to look like this.
OK, notice this is my bulb. And guess what, it behaves like a resistor. It's a very interesting kind of resistor, so I won't go into details for now. But notice its IV characteristic behaves like a resistor.
OK, so those are some pretty standard lumped elements. You deal with a lot more sets of lumped elements, switches, MOSFETs, capacitors, inductors, a bunch of other fun stuff. But before we do that, what I wanted to tell you, don't go berserk on this abstraction binge.
Too much of anything is bad for you. So what I'm going to show you is, abstractions or models are only valid provided you work within a set of constraints. Notice, we have already had this tacit handshake which said that we follow the discipline.
Even after we follow the discipline, there are ranges to how well physical elements can behave like ideal lumped elements. OK, for example, what we will do is show you the resistor. And it's going to look like a resistor.
And I'm going to keep increasing the voltage around it. OK, what's going to happen at some point? I just keep doing that. If it's an ideal element, if you're a theorist, you say, oh yeah, the curve will keep extending until I reach infinity.
But this is a practical resistor, so people out here can cover your eyes or something. OK, so you're abstraction can't predict that. All it says is the current is an amp. It can't predict the heat, light, or the smell.
In the laboratory, even, you get the smell. You know what somebody has just done. So that's one example of the lumped abstraction breaking down. So, if I really believe that my own BS, anything is a lumped element.
So here's a pickle. A pickle is a lumped element. I can choose it as a lumped resistor. But this is a very interesting lumped resistor. Don't try this at home. This is a standard pickle into which you are pumping 110 V AC.
I promise you, this is a standard pickle. So, it has a fixed resistance, but your lumped abstraction cannot predict the nice light and sound effect. OK, so the last two or three minutes what I want to do, so remember, don't get carried away by abstractions.
There are limits. OK, you can't predict everything. OK, that's the smell of a pickle. OK, so let me give you a preview of some upcoming attractions, and show you one more quick simplification in the last few minutes.
So what we can do, once we build these lumped elements, we can connect them in circuits. OK, so I can build a circuit, of the sort. So here's a voltage source with a bunch of resistors. I can connect them with wires and build a circuit of the sort.
One interesting question we can ask ourselves is, under the lumped matter discipline, what can we say about the voltages? OK, if I go around the loop, provided my world adheres to the lumped matter discipline, what can I say about the voltages around this loop? Ah-ha, Maxwell again, right? So, I can write Maxwell's appropriate equation to solve that.
OK, voltages have something to do with E and your integral of E dot dl and all of that stuff, right? So this is the appropriate Maxwell's equations to use. And I want to find out what happens here.
Now remember, under LMD, I made the assumption. OK, my world, my playground, has del phi B by del t being zero. The rate of change of flux is zero. So, under these circumstances, I can write this.
I can break up this line integral into three parts across the voltage source and across the two resistors and write that down. OK, and then when I can do, is now that the right-hand side is zero, I can simply take this.
And I know that E dot dl across this element is simply VCA. This is VAB, and this is VBC equals zero. OK, so when I make the assumption that del phi B by del t is zero, and I go around this loop, apply Maxwell's equations, what do I find? I find that the sum of the voltages, VCA plus VAB plus VBC, is zero.
That's fantastic. So now, I could say hasta la vista to this baby here. And I can focus on this guy and say, Maxwell's equations, this thing with squiggles and dels and all that stuff, can be simplified to the sum of the voltages across a set of elements in a loop in a circuit is zero.
OK, and this is called Kirchhoff's first first law, KVL. OK, similarly, in recitation section, you'll see the application of Kirchhoff's current law, which comes from this be equal to zero, and all the currents coming into a node being zero.
So, KVL and KCl directly come out of the lumped matter discipline. And you can use those to solve circuits like this.
-----
Cheers,
June
금요일, 9월 18, 2009
목요일, 9월 17, 2009
DLL Test in C/C++, Delphi
사용하지 않고 있다가 꼭 사용할 때가 되면 잊어 버린다.
잊어 버릴까봐 일단 급하게 적어 둔다... -_-;;; 쳇..!
//
// Project:
// Purpose: DLL test
// Author: HoJung Kim (godmode2k@hotmail.com)
// Date: September 17, 2009
// NOTE:
//
//
// Linux ================================================================
//
// [In C/C++]
// ----------------------------------------------------------------------
//! Export
// ----------------------------------------------------------------------
extern "C" int __FUNCTION__(int, float, float, int, float, char*);
extern "C" int __FUNCTION__(int a1, float a2, float a3, int a4, float a5, char* a6) {
...
}
// Build
GCC_BIN=/usr/bin/gcc
INC_LIB_SO_FLAGS="-DLINUX"
INC_SO="-fPIC -shared -Wl,-soname,$LIB_OUTPUT_SO_NAME -o $LIB_WORK_DIR$LIB_OUTPUT_SO *.o"
$GCC_BIN $INC_LIB_SO_FLAGS $INC_SO
// ----------------------------------------------------------------------
//! Dynamic Linking
// ----------------------------------------------------------------------
#ifdef __LINUX__
# include
#else
/* __WIN32__ || _WIN32 || WIN32 */
# include
#endif
#ifdef __LINUX__
//# define dl_load(a) dlopen(a, RTLD_NOWIRTLD_GLOBAL)
# define dl_load(a) dlopen(a, RTLD_NOW)
# define dl_close(a) dlclose(a)
# define dl_sym(a, str) dlsym(a, str)
# define dl_error dlerror
typedef void* g_pFnc;
typedef g_pFnc g_pHandle;
#else
/* __WIN32__ || _WIN32 || WIN32 */
# define dl_load(a) LoadLibrary(a)
# define dl_close(a) FreeLibrary(a)
# define dl_sym(a, str) GetProcAddress(a, str)
#endif
typedef int (*gFp)(int, float, float, int, float, char*)
#endif
//
int main(int argc, char** argv) {
#ifdef __LINUX__
g_pHandle dlFile = VM_null;
//dlFile = dl_load( "test.so" );
dlFile = dl_load( "./test.so" );
#else
/* __WIN32__ || _WIN32 || WIN32 */
g_pHandle dlFile = 0;
dlFile = dl_load( "test.dll" );
#endif
if( !dlFile ) {
#ifdef __LINUX__
fprintf( stderr, "Error: Library load: %s\n", dl_error() );
#else
/* __WIN32__ || _WIN32 || WIN32 */
fprintf( stderr, "Error: Library load: %d\n", GetLastError() );
#endif
return -1;
}
gFp fnXXXXX = (gFp)dl_sym( dlFile, "XXXXX" );
if( !fnXXXXX ) {
#if __LINUX__
fprintf( stderr, "Error: Library link: %p\n", vmCC );
#else
/* __WIN32__ || _WIN32 || WIN32 */
fprintf( stderr, "Error: Library link: %d\n", GetLastError() );
#endif
return -1;
}
fprintf( stdout, "Test\n" );
if( argc < 2 ) {
return -1;
}
fnXXXXX( ..... );
dl_close( dlFile );
return 0;
}
//
// WIN32 ================================================================
//
// [In C/C++]
// ----------------------------------------------------------------------
//! Export
// ----------------------------------------------------------------------
extern "C" __declspec(dllexport) int __FUNCTION__(int, float, float, int, float, char*);
extern "C" __declspec(dllexport) int __FUNCTION__(int a1, float a2, float a3, int a4, float a5, char* a6) {
...
}
// ----------------------------------------------------------------------
//! Dynamic Linking
// ----------------------------------------------------------------------
#include "windows.h" // '<>' Angle Brackets Character 작성 안됨
...
//#pragma comment( lib, "./test.lib" )
typedef bool (*gFP)(int, float, float, int, float, char*);
int myFunc(void);
int main(void) {
int ret = 0;
ret = myFunc();
return ret;
}
int myFunc(void) {
bool ret = false;
HINSTANCE hInst;
hInst = LoadLibrary( "test.dll" );
if( !hInst ) {
fprintf( stderr, "[LOG] Cannot open test.dll\n" );
return 1;
}
gFP gfp = (gFP)GetProcAddress( hInst, "XXXXX" );
ret = gfp( 0, 1.0f, 1.0f, 0, 1.0f, "AAAAA" );
if( ret )
fprintf( stdout, "[LOG] Generated. [OK]\n" );
else
fprintf( stderr, "[LOG] Generated. [FAIL]\n" );
FreeLibrary( hInst );
return (ret ? true : false);
}
// ----------------------------------------------------------------------
// [In Delphi]
// ----------------------------------------------------------------------
//! Export
// ----------------------------------------------------------------------
library test;
uses
{ ---------------------------------------------- }
{ Component }
{ ---------------------------------------------- }
Windows, { define at the first! }
SysUtils, { use so many inline function like DeleteFile for Windows.DeleteFile }
Classes, { TMemorySTream, ... }
{ Someday we need to these }
StdVcl,
Messages,
Controls,
{ }
StrUtils,
ShellApi,
Dialogs,
{ Network }
HttpApp,
IdTCPConnection,
IdTCPClient,
IdHTTP,
IdMultipartFormData
{ ---------------------------------------------- }
;
{$R *.res}
type
{}
var
{}
function XXXXX(a1: integer; a2, a3: single; a4: integer; a5: single; a6: PChar) : integer; stdcall; export;
begin
end;
//! Exports
exports
XXXXX
;
//! End
begin
end.
// ----------------------------------------------------------------------
//! Static Linking
// ----------------------------------------------------------------------
unit MyUnit1;
interface
uses Windows;
procedure gfp(a1: integer; a2, a3: single; a4: integer = 0; a5: single = 0; a6: PChar = nil ); stdcall; external 'test.dll';
// ----------------------------------------------------------------------
//! Dynamic Linking
// ----------------------------------------------------------------------
unit MyUnit1;
interface
uses Windows;
type
TDllFunc = function (a1: integer; a2, a3: single; a4: integer; a5: single; a6: PChar) : HResult; cdecl;
var
g_iDllHandle: integer;
function gfp: integer;
var
ret: integer;
DllFunc: TDllFunc;
begin
ret := 0; // false
try
g_iDllHandle := 0;
g_iDllHandle := LoadLibrary( '.\test.dll' );
if( g_iDllHandle = 0 ) then begin
ShowMessage( '[ERROR] Cannot find ./test.dll' );
ret := 0; // false
end
else begin
@DllFunc := GetProcAddress( g_iDllHandle, 'XXXXX' );
if( @DllFunc = nil ) then begin
ShowMessage( '[ERROR] Cannot get process address' );
ret := 0; // false
end
else begin
ret := DllFunc( 0, 1.0f, 1.0f, 0, 1.0f, PChar('AAAAA') );
end;
end;
finally
FreeLibrary( g_iDllHandle );
g_iDllHandle := 0;
DllFunc := nil;
end; // try ~ finally
result := ret;
end;
// ----------------------------------------------------------------------
잊어 버릴까봐 일단 급하게 적어 둔다... -_-;;; 쳇..!
//
// Project:
// Purpose: DLL test
// Author: HoJung Kim (godmode2k@hotmail.com)
// Date: September 17, 2009
// NOTE:
//
//
// Linux ================================================================
//
// [In C/C++]
// ----------------------------------------------------------------------
//! Export
// ----------------------------------------------------------------------
extern "C" int __FUNCTION__(int, float, float, int, float, char*);
extern "C" int __FUNCTION__(int a1, float a2, float a3, int a4, float a5, char* a6) {
...
}
// Build
GCC_BIN=/usr/bin/gcc
INC_LIB_SO_FLAGS="-DLINUX"
INC_SO="-fPIC -shared -Wl,-soname,$LIB_OUTPUT_SO_NAME -o $LIB_WORK_DIR$LIB_OUTPUT_SO *.o"
$GCC_BIN $INC_LIB_SO_FLAGS $INC_SO
// ----------------------------------------------------------------------
//! Dynamic Linking
// ----------------------------------------------------------------------
#ifdef __LINUX__
# include
#else
/* __WIN32__ || _WIN32 || WIN32 */
# include
#endif
#ifdef __LINUX__
//# define dl_load(a) dlopen(a, RTLD_NOWIRTLD_GLOBAL)
# define dl_load(a) dlopen(a, RTLD_NOW)
# define dl_close(a) dlclose(a)
# define dl_sym(a, str) dlsym(a, str)
# define dl_error dlerror
typedef void* g_pFnc;
typedef g_pFnc g_pHandle;
#else
/* __WIN32__ || _WIN32 || WIN32 */
# define dl_load(a) LoadLibrary(a)
# define dl_close(a) FreeLibrary(a)
# define dl_sym(a, str) GetProcAddress(a, str)
#endif
typedef int (*gFp)(int, float, float, int, float, char*)
#endif
//
int main(int argc, char** argv) {
#ifdef __LINUX__
g_pHandle dlFile = VM_null;
//dlFile = dl_load( "test.so" );
dlFile = dl_load( "./test.so" );
#else
/* __WIN32__ || _WIN32 || WIN32 */
g_pHandle dlFile = 0;
dlFile = dl_load( "test.dll" );
#endif
if( !dlFile ) {
#ifdef __LINUX__
fprintf( stderr, "Error: Library load: %s\n", dl_error() );
#else
/* __WIN32__ || _WIN32 || WIN32 */
fprintf( stderr, "Error: Library load: %d\n", GetLastError() );
#endif
return -1;
}
gFp fnXXXXX = (gFp)dl_sym( dlFile, "XXXXX" );
if( !fnXXXXX ) {
#if __LINUX__
fprintf( stderr, "Error: Library link: %p\n", vmCC );
#else
/* __WIN32__ || _WIN32 || WIN32 */
fprintf( stderr, "Error: Library link: %d\n", GetLastError() );
#endif
return -1;
}
fprintf( stdout, "Test\n" );
if( argc < 2 ) {
return -1;
}
fnXXXXX( ..... );
dl_close( dlFile );
return 0;
}
//
// WIN32 ================================================================
//
// [In C/C++]
// ----------------------------------------------------------------------
//! Export
// ----------------------------------------------------------------------
extern "C" __declspec(dllexport) int __FUNCTION__(int, float, float, int, float, char*);
extern "C" __declspec(dllexport) int __FUNCTION__(int a1, float a2, float a3, int a4, float a5, char* a6) {
...
}
// ----------------------------------------------------------------------
//! Dynamic Linking
// ----------------------------------------------------------------------
#include "windows.h" // '<>' Angle Brackets Character 작성 안됨
...
//#pragma comment( lib, "./test.lib" )
typedef bool (*gFP)(int, float, float, int, float, char*);
int myFunc(void);
int main(void) {
int ret = 0;
ret = myFunc();
return ret;
}
int myFunc(void) {
bool ret = false;
HINSTANCE hInst;
hInst = LoadLibrary( "test.dll" );
if( !hInst ) {
fprintf( stderr, "[LOG] Cannot open test.dll\n" );
return 1;
}
gFP gfp = (gFP)GetProcAddress( hInst, "XXXXX" );
ret = gfp( 0, 1.0f, 1.0f, 0, 1.0f, "AAAAA" );
if( ret )
fprintf( stdout, "[LOG] Generated. [OK]\n" );
else
fprintf( stderr, "[LOG] Generated. [FAIL]\n" );
FreeLibrary( hInst );
return (ret ? true : false);
}
// ----------------------------------------------------------------------
// [In Delphi]
// ----------------------------------------------------------------------
//! Export
// ----------------------------------------------------------------------
library test;
uses
{ ---------------------------------------------- }
{ Component }
{ ---------------------------------------------- }
Windows, { define at the first! }
SysUtils, { use so many inline function like DeleteFile for Windows.DeleteFile }
Classes, { TMemorySTream, ... }
{ Someday we need to these }
StdVcl,
Messages,
Controls,
{ }
StrUtils,
ShellApi,
Dialogs,
{ Network }
HttpApp,
IdTCPConnection,
IdTCPClient,
IdHTTP,
IdMultipartFormData
{ ---------------------------------------------- }
;
{$R *.res}
type
{}
var
{}
function XXXXX(a1: integer; a2, a3: single; a4: integer; a5: single; a6: PChar) : integer; stdcall; export;
begin
end;
//! Exports
exports
XXXXX
;
//! End
begin
end.
// ----------------------------------------------------------------------
//! Static Linking
// ----------------------------------------------------------------------
unit MyUnit1;
interface
uses Windows;
procedure gfp(a1: integer; a2, a3: single; a4: integer = 0; a5: single = 0; a6: PChar = nil ); stdcall; external 'test.dll';
// ----------------------------------------------------------------------
//! Dynamic Linking
// ----------------------------------------------------------------------
unit MyUnit1;
interface
uses Windows;
type
TDllFunc = function (a1: integer; a2, a3: single; a4: integer; a5: single; a6: PChar) : HResult; cdecl;
var
g_iDllHandle: integer;
function gfp: integer;
var
ret: integer;
DllFunc: TDllFunc;
begin
ret := 0; // false
try
g_iDllHandle := 0;
g_iDllHandle := LoadLibrary( '.\test.dll' );
if( g_iDllHandle = 0 ) then begin
ShowMessage( '[ERROR] Cannot find ./test.dll' );
ret := 0; // false
end
else begin
@DllFunc := GetProcAddress( g_iDllHandle, 'XXXXX' );
if( @DllFunc = nil ) then begin
ShowMessage( '[ERROR] Cannot get process address' );
ret := 0; // false
end
else begin
ret := DllFunc( 0, 1.0f, 1.0f, 0, 1.0f, PChar('AAAAA') );
end;
end;
finally
FreeLibrary( g_iDllHandle );
g_iDllHandle := 0;
DllFunc := nil;
end; // try ~ finally
result := ret;
end;
// ----------------------------------------------------------------------
금요일, 8월 21, 2009
MultiPart Stream
잊어 버릴까봐 적어 둔다.
사실 "Copy Memory data to String" 에서 SetString() 을 잊어 버릴까봐... ㅋㅋ
SetString() 은 Delphi 7 API 이다.
//!hjkim: MultiPart Example [
//
procedure TForm1.Button1Click(Sender: TObject);
var
strURL: String;
multiPartDataStream: TIdMultiPartFormDataStream;
recvStream: TMemorySTream;
http1: TIdHTTP;
//fileStream: TFileStream;
strUniqueFilename: string;
strRes: string;
// Copy Memory data to String
pBuf: PChar;
begin
strURL := 'http://...com/test.php?';
strUniqueFilename := 'testFile.xxx';
// Create MultiPart and Memory Stream
multiPartDataStream := TIdMultiPartFormDataStream.Create;
recvStream := TMemorySTream.Create;
http1 := TIdHTTP.Create( self );
try
// Fill Field into Form
multiPartDataStream.AddFormField( 'fileName', strUniqueFilename );
//CopyFile( '/test.tmp', '/tmp/test.tmp', FALSE );
multiPartDataStream.AddFile( strUniqueFilename, '/tmp/test.tmp', 'txt/plain' );
multiPartDataStream.Position := 0;
// Send stream to Server
try
http1.Post( strURL, multiPartDataStream, recvStream );
except
end;
finally
//fileStream := TFileStream.Create( '/tmp/log.txt', fmCreate );
//recvStream.SaveToStream( fileStream );
//fileStream.Free;
// Copy Memory data to String
pBuf := recvStream.Memory;
SetString( strRes, pBuf, recvStream.Size );
ShowMessage( 'Message: ' + 'Recv = ' + strRes );
// Release memory
http1.Free;
multiPartDataStream.Free;
recvStream.Free;
end;
end;
//!hjkim: MultiPart Example ]
-----
Cheers,
June
사실 "Copy Memory data to String" 에서 SetString() 을 잊어 버릴까봐... ㅋㅋ
SetString() 은 Delphi 7 API 이다.
//!hjkim: MultiPart Example [
//
procedure TForm1.Button1Click(Sender: TObject);
var
strURL: String;
multiPartDataStream: TIdMultiPartFormDataStream;
recvStream: TMemorySTream;
http1: TIdHTTP;
//fileStream: TFileStream;
strUniqueFilename: string;
strRes: string;
// Copy Memory data to String
pBuf: PChar;
begin
strURL := 'http://...com/test.php?';
strUniqueFilename := 'testFile.xxx';
// Create MultiPart and Memory Stream
multiPartDataStream := TIdMultiPartFormDataStream.Create;
recvStream := TMemorySTream.Create;
http1 := TIdHTTP.Create( self );
try
// Fill Field into Form
multiPartDataStream.AddFormField( 'fileName', strUniqueFilename );
//CopyFile( '/test.tmp', '/tmp/test.tmp', FALSE );
multiPartDataStream.AddFile( strUniqueFilename, '/tmp/test.tmp', 'txt/plain' );
multiPartDataStream.Position := 0;
// Send stream to Server
try
http1.Post( strURL, multiPartDataStream, recvStream );
except
end;
finally
//fileStream := TFileStream.Create( '/tmp/log.txt', fmCreate );
//recvStream.SaveToStream( fileStream );
//fileStream.Free;
// Copy Memory data to String
pBuf := recvStream.Memory;
SetString( strRes, pBuf, recvStream.Size );
ShowMessage( 'Message: ' + 'Recv = ' + strRes );
// Release memory
http1.Free;
multiPartDataStream.Free;
recvStream.Free;
end;
end;
//!hjkim: MultiPart Example ]
-----
Cheers,
June
화요일, 8월 18, 2009
String Manipulation
// 한글, 영문, 숫자 등이 혼합된 긴 문자열을 원하는 byte 로 잘라보자.
// 다시 작성하기 귀찮아서 적어 둔다. -_-;
// 아래 주석이 핵심 이기에 잘 읽어 두길 바란다. 신경써서 작성 했음 ^^;
//! hjkim: Cut string(Korean+English+Numeric+SpecialCharacter) [
// Note:
// If string is so long cutting a moderately then append "…".
// i.e., cut by 12, "TEST한글123한"
// May expected result is "TEST한글123"
//
#define MAX_LENGTH_STRING 26
{
unsigned char bufStrName[MAX_LENGTH_STRING+2+1] = { 0 }; // MAX Finename: 26, "…": 2
char* pStrName = "test한글ㅎ1234aodkjf023r미ㅓ알ㄴ이f3r";
int pStrNameLength = strlen( pStrName );
int i = 0;
int counter = MAX_LENGTH_STRING;
if( pStrName ) {
if( pStrNameLength > MAX_LENGTH_STRING ) {
memcpy( (void*)bufStrName, (void*)pStrName, MAX_LENGTH_STRING );
bufStrName[MAX_LENGTH_STRING] = '\0';
for( i = MAX_LENGTH_STRING-1; i >= 0; i-- ) {
if( !(bufStrName[i] & 0x80) )
// or if( (bufStrName[i] < 127) )
counter--;
}
memset( (void*)bufStrName, 0x00, sizeof(bufStrName) );
/*
Checks MSB and LSB 2 bytes Korean character.
2 bytes character is bigger than ASCII Decimal code 127.
So, we can know this character is 2 byte(MSB or LSB) character or ASCII how remnant divided total length by 2.
If remnant is zero then its 2 byte character (LSB; means combined) or ASCII code.
But remnant is not a zero then its 2 byte character (MSB; means not combined), so eliminates last byte.
*/
memcpy( (void*)bufStrName, (void*)pStrName, (MAX_LENGTH_STRING-(counter%2)) );
memcpy( (void*)(bufStrName+strlen((char*)bufStrName)), (void*)"…", strlen("…") );
fprintf( stdout, "%s\n", (char*)bufStrName );
}
else
fprintf( stdout, pStrName );
}
}
//! hjkim: Cut string(Korean+English+Numeric+SpecialCharacter) ]
// ---------------------------------------------
// Ascii <-> Unicode
// (Visual C++)
// ---------------------------------------------
-----
Cheers,
June
// 다시 작성하기 귀찮아서 적어 둔다. -_-;
// 아래 주석이 핵심 이기에 잘 읽어 두길 바란다. 신경써서 작성 했음 ^^;
//! hjkim: Cut string(Korean+English+Numeric+SpecialCharacter) [
// Note:
// If string is so long cutting a moderately then append "…".
// i.e., cut by 12, "TEST한글123한"
// May expected result is "TEST한글123"
//
#define MAX_LENGTH_STRING 26
{
unsigned char bufStrName[MAX_LENGTH_STRING+2+1] = { 0 }; // MAX Finename: 26, "…": 2
char* pStrName = "test한글ㅎ1234aodkjf023r미ㅓ알ㄴ이f3r";
int pStrNameLength = strlen( pStrName );
int i = 0;
int counter = MAX_LENGTH_STRING;
if( pStrName ) {
if( pStrNameLength > MAX_LENGTH_STRING ) {
memcpy( (void*)bufStrName, (void*)pStrName, MAX_LENGTH_STRING );
bufStrName[MAX_LENGTH_STRING] = '\0';
for( i = MAX_LENGTH_STRING-1; i >= 0; i-- ) {
if( !(bufStrName[i] & 0x80) )
// or if( (bufStrName[i] < 127) )
counter--;
}
memset( (void*)bufStrName, 0x00, sizeof(bufStrName) );
/*
Checks MSB and LSB 2 bytes Korean character.
2 bytes character is bigger than ASCII Decimal code 127.
So, we can know this character is 2 byte(MSB or LSB) character or ASCII how remnant divided total length by 2.
If remnant is zero then its 2 byte character (LSB; means combined) or ASCII code.
But remnant is not a zero then its 2 byte character (MSB; means not combined), so eliminates last byte.
*/
memcpy( (void*)bufStrName, (void*)pStrName, (MAX_LENGTH_STRING-(counter%2)) );
memcpy( (void*)(bufStrName+strlen((char*)bufStrName)), (void*)"…", strlen("…") );
fprintf( stdout, "%s\n", (char*)bufStrName );
}
else
fprintf( stdout, pStrName );
}
}
//! hjkim: Cut string(Korean+English+Numeric+SpecialCharacter) ]
// ---------------------------------------------
// Ascii <-> Unicode
// (Visual C++)
// ---------------------------------------------
int U2A(WCHAR* pUnicode, char* pAscii) { int length = WideCharToMultiByte( CP_ACP, 0, pUnicode, -1, NULL, 0, NULL, NULL ); WideCharToMultiByte( CP_ACP, 0, pUnicode, -1, pAscii, length, 0, 0 ); return length; } int A2U(char* pAscii, WCHAR *pUnicode) { int length = MultiByteToWideChar( CP_ACP, 0, (LPCTSTR)pAscii, -1, NULL, NULL ); MultiByteToWideChar( CP_ACP, 0, (LPCTSTR)pAscii, -1, pUnicode, length ); return length; }
// ---------------------------------------------
-----
Cheers,
June
월요일, 8월 10, 2009
Delphi Try~Exception, StringReplace
꼭 잊어버려... -_-;;;
그래서 적어 둔다.
-----
Cheers,
June
그래서 적어 둔다.
// *** Delphi ***
// Try ~ Exception
try
except
on E : Exception do begin
ShowMessage( E.ClassName + ' error raised, with message : ' + E.Message );
end;
// String Replace
Result := StringReplace( strText, 'old','new', [rfReplaceAll] );
-----
Cheers,
June
일요일, 7월 12, 2009
일기 (2009.07.12)
나는 아직 준비가 되지 않았던 것일까?
하나를 생각하면 다른 하나가 생각되고 고민이 되며 신경이 쓰인다.
하나를 선택 하기 위해선 다른 하나를 꼭 희생 해야 하나?
길을 걸으며 가벼운 재즈 음악 한곡 다 듣고 나서 기지개를 한 번
쭉~ 펴고 나면 어느새 내가 만든 음악이 잔잔하게 퍼지고 또 퍼지고
퍼져서 다시 내게 돌아온다.
하지만, 이젠 기다리려고 애쓰지 말자.
내겐 이미 마이크가 준비 되어있으니...
고도원의 아침편지
-----
Cheers,
June
하나를 생각하면 다른 하나가 생각되고 고민이 되며 신경이 쓰인다.
하나를 선택 하기 위해선 다른 하나를 꼭 희생 해야 하나?
길을 걸으며 가벼운 재즈 음악 한곡 다 듣고 나서 기지개를 한 번
쭉~ 펴고 나면 어느새 내가 만든 음악이 잔잔하게 퍼지고 또 퍼지고
퍼져서 다시 내게 돌아온다.
하지만, 이젠 기다리려고 애쓰지 말자.
내겐 이미 마이크가 준비 되어있으니...
고도원의 아침편지
길 떠날 준비
새로운 일을 시작하는 것이 두렵나요?
자신의 내면과 외면을 바꾸는 것이 두렵습니까?
하지만 길을 떠날 준비를 서두르십시오.
그리고 당신의 인생을 경험하세요.
- 안젤름 그륀의《머물지 말고 흘러라》중에서 -
* 갑자기 전기불이 나갔을 때
촛불을 준비한 사람만이 불을 밝힐 수 있습니다.
길이 열렸을 때 준비한 사람만 바로 떠날 수 있습니다.
새로운 도전과 변화에 두려움을 안고 있다면
아직 길 떠날 준비가 안돼 있는 것입니다.
지금이라도 서둘러 준비하십시오.
아직도 늦지 않았습니다.
-----
Cheers,
June
일요일, 5월 31, 2009
일기 (2009.05.31)
5월의 마지막 날 이구나...
어제 몇몇 일들이 있었다... 내 얘기 좀 들어볼래?
어제 말이지... 오후 조금 늦게 서점에 갔어.
문화 상품권 세 장을 쓰고 싶어 안달이 나서였지.
집에서 출발하기 전에 무엇을 살까 고민 하다가,
라고 마음을 먹었다.
전철역에 들어서서 교통카드가 충전이 안되어있을까봐
확인을 해보니 오... 넉넉하게 있군...
일단 출발부터 기분이 좋음... ㅎㅎ
센트럴시티 영풍문고에 도착해서 일단 새로나온 책들부터 천천히 구경하기 시작했다. "음... 그렇군... 그래..." 하면서 전공서적도 보고, 이리저리 돌아다녔다. 시계를 보니 7시. 음... 조금 더 둘러보고 사자... 8시... 에이씨... 저녁먹어야 하는데, 시간이 너무 빨리 흘렀다.
이때부터 나에 마음은 조금씩 바빠지게 되었다. 도서외 문구 쪽으로 이동 해서 구경하다 보니 마음에 드는 USB Hub 가 있었다. USB Hub 를 사고 거슬러 받는 돈으로 핫쵸코를 사먹을까? 아니면 책을 사고 음반을 살까? (USB Hub 는 25,000 원 이었다.) 순간 갈등이 되었다. 마치 천사와 악마처럼...
"그래... 내 사비를 들여서 USB Hub 를 사기엔 돈이 아까우니 공짜로 생긴 문화상품권으로 사자..."
"아니야... 이거 당장은 나에게 필요 없잖아... 그냥 책하고 음반 사자..."
고민과 고민을 한 끝에 USB Hub 를 사는것은 포기를 하고 책을 구입하기로 했다. 혹시나 하는 마음에 영화로 제작된 소설 "개와 나의 10가지 약속" 이 있나 확인을 해보았다. 전에 확인 했을 때 찾지를 못해서 아쉬워 했었지만... 이렇게 저렇게 보다보니... 있었다. 헤헤...
영화로 감동적으로 봤기에 책을 꼭 사야겠다고 마음은 먹었었다. 결국 내 손에 들어 오는 순간 이었다. 그리고 나서 한치의 주저함도 없이 "큐이야기: 좌안" 을 집어서 계산대로 갔다.
계산을 마치고 나서 거스름 돈(200원 -_-;)을 받고 근처 "Krispy Kreme" 에 들러 내 돈 10,000 원으로 핫쵸코를 샀다. 여유롭게 마시며 check-in 을 하고 전철을 기다렸다. "아.. 따뜻하고 좋다."
문제는 이때부터 였다.
가만... 내가 핫쵸코를 사고나서 거스름 돈을 받았나? 분명 3,000 원 이었는데? 지갑을 확인 해보니... 분명 오천원 이나 천원권이 여러장 있어야 하는데 없었다. 낭패였다. 일단 다시 check-out 하고 "Krispy Kreme" 으로 달려가서 상황 설명하고 나서 돈을 받을 수 있었다. 휴... 다행이 옆에 여직원이 내가 계산하는걸 보았다고 해서 마음이 놓였다.
흠... 그래도 내 900 원... 무지 아까웠다. 그래서 시간이 저녁 9시 인데도 장을 보거 갈까 고민 하다가 "그래... 걸어서 Kims' Club" 까지 가자... 교통비로 900 원 지출했다고 생각하지 뭐..." 하며 여유롭게 장을 보러갔다.
배고 고프고 15 분 정도 강남지하상가로 걸어가야 하지만, 마음은 편했다... 7,000 원을 받았으니... 흐흐흐... 그렇게 걸어서 Kim's Club 에 도착.
이것저것을 사고 버스로 집에 돌아왔다.
다음날, (일기를 쓰고있는 오늘이다.) 어제 샀던 책을 읽어보려고 "큐이야기: 우안" 을 꺼내 들었다. 페이지를 넘기고 넘기는 순간 나는 놀라움을 금치 못했다.
Chapter 1 이 아닌 4 였다. 순간 내 눈을 의심했다. 혹시나 해서 "큐이야기: 좌안" 을 펴 보았다. 역시나 6 장 이었다. 자세히 읽어보니... "큐이야기: 좌안/우안" 은 모두 상/하 로 각 2 권 씩으로 이루어져 있었다.
oTL 예전에 "냉정과 열정 사이" 라는 책을 보았을 때 처럼 두 권으로만 이루어져있는 것으로 알고 샀는데 그게 아니였다. 총 4 권 이었다.
좌절이었다. 조금 더 세심하게 확인하고 살걸... "큐이야기: 우안" 은 예전에 샀지만, 그게 지금까지 2 편일 줄은 상상도 못했다. 하지만, 그 실수를 또 한번 저질러서, "큐이야기: 좌안" 도 역시 2 편을 샀던 것이다.
순간 생각을 해보니... 마케팅에 낚였지 않았나 싶다. 책들의 상/하 권을 따로 구분을 해 놓지 않고 모두 나열 해놓았는데, 책 표지에 쓰여있는 표시로는 한 순간에 알아보기는 힘들다.
만약 그 상황에서 1,2 권으로 생각하지 않고 샀다면 다른 사람들 역시 거의 2편을 먼저 샀을 것 같다. 나에 불찰이기는 하지만 너무 억울하다... ㅠ.ㅠ
책을 읽기 위해 나는 또 다시 각 1편을 두 권 사야 한다. -_-;;; 하늘 이시여... 문화 상품권이 또 다시 생기기를 바랄 수 밖에... ㅠ.ㅠ 에고...
끝.
-----
Cheers,
June
어제 몇몇 일들이 있었다... 내 얘기 좀 들어볼래?
어제 말이지... 오후 조금 늦게 서점에 갔어.
문화 상품권 세 장을 쓰고 싶어 안달이 나서였지.
집에서 출발하기 전에 무엇을 살까 고민 하다가,
그래! 지난번에 "큐이야기: 우안" 을 샀으니까,
이번엔 "큐이야기: 좌안" 을 사고, 이건 10,000 원.
그리고 나머지 20,000 원으로 사고 싶었던 음반을 사자
라고 마음을 먹었다.
전철역에 들어서서 교통카드가 충전이 안되어있을까봐
확인을 해보니 오... 넉넉하게 있군...
일단 출발부터 기분이 좋음... ㅎㅎ
센트럴시티 영풍문고에 도착해서 일단 새로나온 책들부터 천천히 구경하기 시작했다. "음... 그렇군... 그래..." 하면서 전공서적도 보고, 이리저리 돌아다녔다. 시계를 보니 7시. 음... 조금 더 둘러보고 사자... 8시... 에이씨... 저녁먹어야 하는데, 시간이 너무 빨리 흘렀다.
이때부터 나에 마음은 조금씩 바빠지게 되었다. 도서외 문구 쪽으로 이동 해서 구경하다 보니 마음에 드는 USB Hub 가 있었다. USB Hub 를 사고 거슬러 받는 돈으로 핫쵸코를 사먹을까? 아니면 책을 사고 음반을 살까? (USB Hub 는 25,000 원 이었다.) 순간 갈등이 되었다. 마치 천사와 악마처럼...
"그래... 내 사비를 들여서 USB Hub 를 사기엔 돈이 아까우니 공짜로 생긴 문화상품권으로 사자..."
"아니야... 이거 당장은 나에게 필요 없잖아... 그냥 책하고 음반 사자..."
고민과 고민을 한 끝에 USB Hub 를 사는것은 포기를 하고 책을 구입하기로 했다. 혹시나 하는 마음에 영화로 제작된 소설 "개와 나의 10가지 약속" 이 있나 확인을 해보았다. 전에 확인 했을 때 찾지를 못해서 아쉬워 했었지만... 이렇게 저렇게 보다보니... 있었다. 헤헤...
영화로 감동적으로 봤기에 책을 꼭 사야겠다고 마음은 먹었었다. 결국 내 손에 들어 오는 순간 이었다. 그리고 나서 한치의 주저함도 없이 "큐이야기: 좌안" 을 집어서 계산대로 갔다.
계산을 마치고 나서 거스름 돈(200원 -_-;)을 받고 근처 "Krispy Kreme" 에 들러 내 돈 10,000 원으로 핫쵸코를 샀다. 여유롭게 마시며 check-in 을 하고 전철을 기다렸다. "아.. 따뜻하고 좋다."
문제는 이때부터 였다.
가만... 내가 핫쵸코를 사고나서 거스름 돈을 받았나? 분명 3,000 원 이었는데? 지갑을 확인 해보니... 분명 오천원 이나 천원권이 여러장 있어야 하는데 없었다. 낭패였다. 일단 다시 check-out 하고 "Krispy Kreme" 으로 달려가서 상황 설명하고 나서 돈을 받을 수 있었다. 휴... 다행이 옆에 여직원이 내가 계산하는걸 보았다고 해서 마음이 놓였다.
흠... 그래도 내 900 원... 무지 아까웠다. 그래서 시간이 저녁 9시 인데도 장을 보거 갈까 고민 하다가 "그래... 걸어서 Kims' Club" 까지 가자... 교통비로 900 원 지출했다고 생각하지 뭐..." 하며 여유롭게 장을 보러갔다.
배고 고프고 15 분 정도 강남지하상가로 걸어가야 하지만, 마음은 편했다... 7,000 원을 받았으니... 흐흐흐... 그렇게 걸어서 Kim's Club 에 도착.
이것저것을 사고 버스로 집에 돌아왔다.
다음날, (일기를 쓰고있는 오늘이다.) 어제 샀던 책을 읽어보려고 "큐이야기: 우안" 을 꺼내 들었다. 페이지를 넘기고 넘기는 순간 나는 놀라움을 금치 못했다.
Chapter 1 이 아닌 4 였다. 순간 내 눈을 의심했다. 혹시나 해서 "큐이야기: 좌안" 을 펴 보았다. 역시나 6 장 이었다. 자세히 읽어보니... "큐이야기: 좌안/우안" 은 모두 상/하 로 각 2 권 씩으로 이루어져 있었다.
oTL 예전에 "냉정과 열정 사이" 라는 책을 보았을 때 처럼 두 권으로만 이루어져있는 것으로 알고 샀는데 그게 아니였다. 총 4 권 이었다.
좌절이었다. 조금 더 세심하게 확인하고 살걸... "큐이야기: 우안" 은 예전에 샀지만, 그게 지금까지 2 편일 줄은 상상도 못했다. 하지만, 그 실수를 또 한번 저질러서, "큐이야기: 좌안" 도 역시 2 편을 샀던 것이다.
순간 생각을 해보니... 마케팅에 낚였지 않았나 싶다. 책들의 상/하 권을 따로 구분을 해 놓지 않고 모두 나열 해놓았는데, 책 표지에 쓰여있는 표시로는 한 순간에 알아보기는 힘들다.
만약 그 상황에서 1,2 권으로 생각하지 않고 샀다면 다른 사람들 역시 거의 2편을 먼저 샀을 것 같다. 나에 불찰이기는 하지만 너무 억울하다... ㅠ.ㅠ
책을 읽기 위해 나는 또 다시 각 1편을 두 권 사야 한다. -_-;;; 하늘 이시여... 문화 상품권이 또 다시 생기기를 바랄 수 밖에... ㅠ.ㅠ 에고...
끝.
-----
Cheers,
June
화요일, 4월 21, 2009
삼성: 하하하 캠페인
삼성: 하하하 캠페인
* 하하하 송 mp3 download url
http://img.hahaha4u.co.kr/hahaha.zip
* 하하하 송 Score (가사포함) download url
http://img.hahaha4u.co.kr/hahaha_music_score.zip
* 하하하 송 Score (가사포함)

-----
하하하 송 너무 좋다... 헤헤
그리고, ^^; 나, 소녀시대 너무 좋아... ^___^ 어쩜 좋아...
Cheers,
June
* 하하하 송 mp3 download url
http://img.hahaha4u.co.kr/hahaha.zip
* 하하하 송 Score (가사포함) download url
http://img.hahaha4u.co.kr/hahaha_music_score.zip
* 하하하 송 Score (가사포함)
-----
하하하 송 너무 좋다... 헤헤
그리고, ^^; 나, 소녀시대 너무 좋아... ^___^ 어쩜 좋아...
Cheers,
June
목요일, 4월 16, 2009
SKT MOBILE CONTENTS OPEN MARKET
SKT MOBILE
CONTENTS OPEN MARKET
SDK 를 이제 제공하게 되었다.
http://developer.itopping.co.kr/
WIPI Clet 의 경우, SDK 는 Core 2.0 에 v1.14 그리고 GIGA(3D) 를 포함하고 있다. 평가 버전 이라고 되어있는데, 상용에서 사용하는 SDK 와 무슨 차이가 있는지 알려주었으면 좋겠다만, 그냥 봐서는 별반 차이는 없을 것 같다.
v1.14 를 제공하는건 아직 구형 terminal 들이 많기에 호환성 때문인 것 같다.
우선 공개는 되었지만, 내가 만든 app 을 내 terminal 에 탑재해서 테스트 해볼 수 있는 그런 환경이 되어야 하는데 어떻게 할지는 잘 모르겠다. 테스트 룸을 제공한다고 하는 그런 말은 별로 내키지 않으므로 하지 않았으면 좋겠다.
회사에서 상용 개발할 때에는 WIPI directory 가 접근 가능한, 출시 전 developer terminal 을 사용 함으로 별로 상관은 없는데 자신의 terminal 은 접근이 제한 되어있어서 힘들다. 이런 문제가 모든 이통사의 terminal 에서 해결 되어야 관심있는 학생, 일반인들도 더욱 쉽게 만들고 배포하지 않을까 한다.
나도 대학 4년 시절, 모바일쪽 app 을 작성을 해서 내 terminal 에 download 해도 실행권한이 없어서 포기를 해야만 했다. 다시한번 언급 하지만, 이런 부분이 빨리 해결이 되어야 만 이쪽에 관심있는 모든 이들이 좀더 쉽게 다가갈 수 있을 것이라고 생각한다.
Apple 의 AppStore (수익!) Model 의 인기에 비슷한 Model 이 많이 나오고 있는데, SKT 를 포함한 국내 모든 이동통신업체 KTF, LGT, 등등 들이 앞으로 어떻게 되는지 지켜보자...
-----
Cheers,
June
CONTENTS OPEN MARKET
SDK 를 이제 제공하게 되었다.
http://developer.itopping.co.kr/
WIPI Clet 의 경우, SDK 는 Core 2.0 에 v1.14 그리고 GIGA(3D) 를 포함하고 있다. 평가 버전 이라고 되어있는데, 상용에서 사용하는 SDK 와 무슨 차이가 있는지 알려주었으면 좋겠다만, 그냥 봐서는 별반 차이는 없을 것 같다.
v1.14 를 제공하는건 아직 구형 terminal 들이 많기에 호환성 때문인 것 같다.
우선 공개는 되었지만, 내가 만든 app 을 내 terminal 에 탑재해서 테스트 해볼 수 있는 그런 환경이 되어야 하는데 어떻게 할지는 잘 모르겠다. 테스트 룸을 제공한다고 하는 그런 말은 별로 내키지 않으므로 하지 않았으면 좋겠다.
회사에서 상용 개발할 때에는 WIPI directory 가 접근 가능한, 출시 전 developer terminal 을 사용 함으로 별로 상관은 없는데 자신의 terminal 은 접근이 제한 되어있어서 힘들다. 이런 문제가 모든 이통사의 terminal 에서 해결 되어야 관심있는 학생, 일반인들도 더욱 쉽게 만들고 배포하지 않을까 한다.
나도 대학 4년 시절, 모바일쪽 app 을 작성을 해서 내 terminal 에 download 해도 실행권한이 없어서 포기를 해야만 했다. 다시한번 언급 하지만, 이런 부분이 빨리 해결이 되어야 만 이쪽에 관심있는 모든 이들이 좀더 쉽게 다가갈 수 있을 것이라고 생각한다.
Apple 의 AppStore (수익!) Model 의 인기에 비슷한 Model 이 많이 나오고 있는데, SKT 를 포함한 국내 모든 이동통신업체 KTF, LGT, 등등 들이 앞으로 어떻게 되는지 지켜보자...
-----
Cheers,
June
화요일, 4월 14, 2009
일기 (2009.04.14)
흠... 오늘은 예비군 훈련이다.
하지만, 오늘 큰 일을 치루었다. ㅠ.ㅠ
어제, 그러니까 4월 13일 저녁에 예비군 홈페이지에 버스 번호를 다시 확인 했다. 분명 '441' 번 이었다. 원래는 4xxx 번호인데 번호가 44x 로 변경 되었다. 원래 논현역 근처에서 타고 다니던 버스번호가 440 으로 바뀐건 알고 있었다. 이 버스가 '강남서초 예비군 훈련장' 으로 가는게 확실하다. 번호만 바뀌었지 노선은 그대로 이기 때문이다. 하지만, 예비군 홈페이지에 '441' 번으로 적혀 있어서 그 버스도 가는 줄 알았다.
아침에 7시 정도 되어서 집을 나와 훈련소를 가는데, 혹시나 해서 버스 기사님께 '441' 번 버스가 '강남서초 예비군 훈련장'을 가는지 물어보았지만, 다를 몰랐다.
하지만, 버스 노선을 보니 예비군 훈련장이 있었다. 그래서 일찍 가려는 마음에 '441' 번을 타고 갔다. 이게 오늘 나에 최대의 실수가 될줄은 몰랐다.
양재 AT Center 를 지나 농수산물직판장? 까지는 '440' 번과 '441' 번 모두 같았다. 하지만, 버스가 그곳에서 직진이 아닌 우회전을 했다. 순간, 느낌이 이상했다. 위치가 바뀔리는 없는데... 음... 하지만, "돌아서 가나 보다" 라고 생각하며 그냥 가만히 있었다.
이런 내 머리를 흔들고 싶다... -_-^
정거장도 양재역에서 부터 15정거장 이상이 되며, 자꾸 시내 길이 나오는 것이다. 서울에 예비군 훈련장이 있는데, 가다 보니 경기도가 나왔다. -_-;;; 자세히 보니 안양을 지나 의왕시까지 갔다.
결국 '예비군 훈련장' 이라는 곳에서 내렸다. (한시간이 넘게 걸렸다.) 앞에 지나가던 현역 아이에게 오늘 예비군 훈련 하는게 맞는지 물어 보았다. 오후부터 한단다... -_-;;; 같이 부대를 들어가서 초소에 있는 애들에게 물어 보았다. (...) 결국은 잘못 왔다는 것이다. 이곳은 51사단... (씨야앙... -_-v)
동사무소 대대에 전화해서 따지기를 여러번... 51사단에서 직업군인(직급을 못봤다.)이 '교육장 착오증' 이라는 것이 있다고 한다. 그래서 그걸 발급 받아서 가면 될거라도 하는데, 이미 오전 9시가 넘은 상태였고, 확인증을 제출해도 받아줄지 의문이며 (동대장이 부탁을 했는데도 안된다고 한다며), 훈련소에서 10시까지는 봐주겠다고 한다. ㅠ.ㅠ
다음날 받는걸로 해야겠다고 동사무소대대에 얘기하고, 결국 포기를 하며 일단 버스를 타고 돌아갔다. 가던중에 너무나도 억울했다. 너무 억울해서 양재역에서 다시 '440' 번을 환승해서 원래 목적지인 '강남서초 예비군 훈련장' 으로 향했다. 도착하니 9시 40분쯤.
흠... 양재역에서 훈련소까지는 10정도 걸리는 거리다. 버스에서 내려서 1km 가 못되는 언덕길을 헥헥 거리며 뛰어 올라갔다. (아침부터 무지하게 뛰었다.)
결국 교장에 도착해서 해당 교관에게 사정 얘기하며 서류전달. 하지만 얘기를 들어보니 아주 반대한 것은 아니었다. 헐... 정말 황당했다. "동사무소대대에서 일부러 그런건가?" 라는 생각을 지울 수가 없었다. 논현동에 살 때에는 동대장이 하는 얘기를 들어보면, 자기는 어떻게 해서든지 도와준다고 하던데... 신사동 하고는 좀 차이가 났다. (쳇... -_-^)
어찌되었건, 잘 처리되어서 훈련을 잘 받을 수 있었다.
다음날 받으라고 해서 그렇게 했다면 나에게 너무 큰 손해를 주었을 듯 싶다.
에고... 너무 피곤하다.
오늘 좋은 경험 했다고 생각한다.
흠... 지금 MBC 뉴스를 보는데... 내일 비가 온단다. 적은 양이지만...
내일은 내 생일인데... 흠...
-----
Cheers,
June
하지만, 오늘 큰 일을 치루었다. ㅠ.ㅠ
어제, 그러니까 4월 13일 저녁에 예비군 홈페이지에 버스 번호를 다시 확인 했다. 분명 '441' 번 이었다. 원래는 4xxx 번호인데 번호가 44x 로 변경 되었다. 원래 논현역 근처에서 타고 다니던 버스번호가 440 으로 바뀐건 알고 있었다. 이 버스가 '강남서초 예비군 훈련장' 으로 가는게 확실하다. 번호만 바뀌었지 노선은 그대로 이기 때문이다. 하지만, 예비군 홈페이지에 '441' 번으로 적혀 있어서 그 버스도 가는 줄 알았다.
아침에 7시 정도 되어서 집을 나와 훈련소를 가는데, 혹시나 해서 버스 기사님께 '441' 번 버스가 '강남서초 예비군 훈련장'을 가는지 물어보았지만, 다를 몰랐다.
하지만, 버스 노선을 보니 예비군 훈련장이 있었다. 그래서 일찍 가려는 마음에 '441' 번을 타고 갔다. 이게 오늘 나에 최대의 실수가 될줄은 몰랐다.
양재 AT Center 를 지나 농수산물직판장? 까지는 '440' 번과 '441' 번 모두 같았다. 하지만, 버스가 그곳에서 직진이 아닌 우회전을 했다. 순간, 느낌이 이상했다. 위치가 바뀔리는 없는데... 음... 하지만, "돌아서 가나 보다" 라고 생각하며 그냥 가만히 있었다.
이런 내 머리를 흔들고 싶다... -_-^
정거장도 양재역에서 부터 15정거장 이상이 되며, 자꾸 시내 길이 나오는 것이다. 서울에 예비군 훈련장이 있는데, 가다 보니 경기도가 나왔다. -_-;;; 자세히 보니 안양을 지나 의왕시까지 갔다.
결국 '예비군 훈련장' 이라는 곳에서 내렸다. (한시간이 넘게 걸렸다.) 앞에 지나가던 현역 아이에게 오늘 예비군 훈련 하는게 맞는지 물어 보았다. 오후부터 한단다... -_-;;; 같이 부대를 들어가서 초소에 있는 애들에게 물어 보았다. (...) 결국은 잘못 왔다는 것이다. 이곳은 51사단... (씨야앙... -_-v)
동사무소 대대에 전화해서 따지기를 여러번... 51사단에서 직업군인(직급을 못봤다.)이 '교육장 착오증' 이라는 것이 있다고 한다. 그래서 그걸 발급 받아서 가면 될거라도 하는데, 이미 오전 9시가 넘은 상태였고, 확인증을 제출해도 받아줄지 의문이며 (동대장이 부탁을 했는데도 안된다고 한다며), 훈련소에서 10시까지는 봐주겠다고 한다. ㅠ.ㅠ
다음날 받는걸로 해야겠다고 동사무소대대에 얘기하고, 결국 포기를 하며 일단 버스를 타고 돌아갔다. 가던중에 너무나도 억울했다. 너무 억울해서 양재역에서 다시 '440' 번을 환승해서 원래 목적지인 '강남서초 예비군 훈련장' 으로 향했다. 도착하니 9시 40분쯤.
흠... 양재역에서 훈련소까지는 10정도 걸리는 거리다. 버스에서 내려서 1km 가 못되는 언덕길을 헥헥 거리며 뛰어 올라갔다. (아침부터 무지하게 뛰었다.)
결국 교장에 도착해서 해당 교관에게 사정 얘기하며 서류전달. 하지만 얘기를 들어보니 아주 반대한 것은 아니었다. 헐... 정말 황당했다. "동사무소대대에서 일부러 그런건가?" 라는 생각을 지울 수가 없었다. 논현동에 살 때에는 동대장이 하는 얘기를 들어보면, 자기는 어떻게 해서든지 도와준다고 하던데... 신사동 하고는 좀 차이가 났다. (쳇... -_-^)
어찌되었건, 잘 처리되어서 훈련을 잘 받을 수 있었다.
다음날 받으라고 해서 그렇게 했다면 나에게 너무 큰 손해를 주었을 듯 싶다.
에고... 너무 피곤하다.
오늘 좋은 경험 했다고 생각한다.
흠... 지금 MBC 뉴스를 보는데... 내일 비가 온단다. 적은 양이지만...
내일은 내 생일인데... 흠...
-----
Cheers,
June
토요일, 3월 28, 2009
set remote access for mysql
// 잊어버릴까봐 적어둔다.
// ------------------------------------------------------------------------------
http://www.experts-exchange.com/Databases/Mysql/Q_21579987.html
ushastry:
Hi!!!
Identical to above...
To change the password(for root or any user)...
on Linux machine..
[ushastry@mmkserv test]#mysqladmin -uUserName -pOldPassword 'NewPassword'
///remote host is not allowed to connect to this mysql server
{From DOCS}
If the following error occurs when you try to connect from a host other than the one on which the MySQL server is running, it means that there is no row in the user table with a Host value that matches the client host:
Host ... is not allowed to connect to this MySQL server
You can fix this by setting up an account for the combination of client hostname and username that you are using when trying to connect.
If you do not know the IP number or hostname of the machine from which you are connecting, you should put a row with '%' as the Host column value in the user table. After trying to connect from the client machine, use a SELECT USER() query to see how you really did connect. (Then change the '%' in the user table row to the actual hostname that shows up in the log. Otherwise, your system is left insecure because it allows connections from any host for the given username.)
Login to MySQL Server(host on which MySQL Server is running)
[root@mmkserv test]# mysql -usqladmin -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.20-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> GRANT ALL ON *.* TO 'EdwardPeter'@'%' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.14 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.16 sec)
mysql> \q
Bye
From windows machine...
C:\mysql\bin\>mysql -hhostname -uEdwardPeter -p123
// ------------------------------------------------------------------------------
---
Take the server out of rotation because you cannot hot-patch any file
and drain all requests to it. Then feel free to:
NET STOP COMSYSAPP
kill any remaining dllhost.exe which stubbornly remains
NET START COMSYSAPP
You may want to restart any of your services (W3SVC) that have user
applications using user code in dllhost.exe.
---
Yeah just stopping COMSYSAPP didn't work. Here's what I'm doing next.
Seems to work although seems a litle extreme:
for /F "tokens=2" %i in ('tasklist /M [name of my dll] /FO TABLE /NH')
do taskkill /F /PID %i
It will only kill the dllhosts.exe that are using my dll. So far I
haven't seem any instability from doing this. The next time the dll is
needed seems a new dllhost.exe is fired up.
---
tasklist /FI "IMAGENAME eq dllhost.exe" /M
dllhost /ProcessID:{94195E79-EBA1-4EA6-BA92-901A1491D1A2}
-----
Cheers,
June
// ------------------------------------------------------------------------------
http://www.experts-exchange.com/Databases/Mysql/Q_21579987.html
ushastry:
Hi!!!
Identical to above...
To change the password(for root or any user)...
on Linux machine..
[ushastry@mmkserv test]#mysqladmin -uUserName -pOldPassword 'NewPassword'
///remote host is not allowed to connect to this mysql server
{From DOCS}
If the following error occurs when you try to connect from a host other than the one on which the MySQL server is running, it means that there is no row in the user table with a Host value that matches the client host:
Host ... is not allowed to connect to this MySQL server
You can fix this by setting up an account for the combination of client hostname and username that you are using when trying to connect.
If you do not know the IP number or hostname of the machine from which you are connecting, you should put a row with '%' as the Host column value in the user table. After trying to connect from the client machine, use a SELECT USER() query to see how you really did connect. (Then change the '%' in the user table row to the actual hostname that shows up in the log. Otherwise, your system is left insecure because it allows connections from any host for the given username.)
Login to MySQL Server(host on which MySQL Server is running)
[root@mmkserv test]# mysql -usqladmin -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.20-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> GRANT ALL ON *.* TO 'EdwardPeter'@'%' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.14 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.16 sec)
mysql> \q
Bye
From windows machine...
C:\mysql\bin\>mysql -hhostname -uEdwardPeter -p123
// ------------------------------------------------------------------------------
---
Take the server out of rotation because you cannot hot-patch any file
and drain all requests to it. Then feel free to:
NET STOP COMSYSAPP
kill any remaining dllhost.exe which stubbornly remains
NET START COMSYSAPP
You may want to restart any of your services (W3SVC) that have user
applications using user code in dllhost.exe.
---
Yeah just stopping COMSYSAPP didn't work. Here's what I'm doing next.
Seems to work although seems a litle extreme:
for /F "tokens=2" %i in ('tasklist /M [name of my dll] /FO TABLE /NH')
do taskkill /F /PID %i
It will only kill the dllhosts.exe that are using my dll. So far I
haven't seem any instability from doing this. The next time the dll is
needed seems a new dllhost.exe is fired up.
---
tasklist /FI "IMAGENAME eq dllhost.exe" /M
dllhost /ProcessID:{94195E79-EBA1-4EA6-BA92-901A1491D1A2}
-----
Cheers,
June
일요일, 3월 22, 2009
일기 (2009.03.21)
아... 오늘 비는 내렸지만, 기분은 참 좋은 하루였다.
형진, 정훈, 류선미, 김신실 그리고 나, 이렇게 다섯이서 "Gran Torino" 라는 영화를 압구정 CGV 에서 감상했다. 영화가 끝난 후 압구정 역 근처 "사보텐" 에서 저녁을 먹고 근처 Bar 에서 가볍에 한 잔씩 했다.
그런데 분위기나 너무 조용하고 사람도 없고 해서 다시 압구정 로데오 근처로 이동을 해서 "Crazy W.C" Bar 에 갔다. 다행히 오늘도 쇼를 많이 했다.잘 못마시는 술이지만, 칵테일, 무알콜 칵테일, 맥주, 칵테일 한 잔 더...
이렇게 많이 마셨다. 다 섯명이 모이니 여러가지 얘기들이 나왔는데 역시나 사람 사는 얘기가 참 듣기 좋았다. "Crazy W.C" Bar 에 바텐더인 귀엽고 상큼한 "Michelle"(nick) 과의 대화도 재미있었고, 특히나 우리가 선택한(?) 미셸이 게임에서 너무 아깝게 졌지만, 우리를 위해 원래는 세 잔 이었던 cocktail 을 다섯 잔을 만들어서 주어서 참 예뻤다. ^^ 맛있었는데 이름은 잘 모르겠다.
이대로 헤어지긴 아쉬워서 다른 곳을 가자고 제안을 했다. 다시 술집으로 향했다. "그림분식" 집을 조금 지나서 오른쪽에 "해신" 이라는 일식 술집이 있어서 그곳으로 향했다.
일본술은 처음이었던 것 같다. 역시나 이름은 잘 모르지만, 깔끔하면서도 끝이 술을 잘 못마시는 나에게도 좋은 향기를 주어서 다음에 다시 한 잔 더 마시고 싶다는 생각이 들었다. 사케와 오뎅국을 먹으면서 서로 여행을 다녀온 얘기 들을 했는데, 귀와 입이 너무 즐거웠다. 당장 이라도 여행을 가고 싶은 그런 느낌... ^^ 오랜만에 만나서 제법 많은 애기들을 하다 보니 나에겐 꽤 신선했다.
사실 오후 5시 40분에 만나서 영화를 보고 저녁을 먹고 술자리를 갖다보니 헤어질 무렵이 새벽 3시가 되었다. 회사에서 회식때를 빼고는 이렇게 친구들과 술자리를 오래 해본 경험이 없었는데, 웬지 모르게 내 자신이 그걸 즐기는 걸 보고 신기했다.
술자리를 싫어하는 내가 서로 마음이 통하고 정이 있는 학교 친구들이다 보니 내 마음이 많이 편했었나 보다. 아마 회사였다면 자리는 끝까지 지켰을지 몰라도 많이 피곤하고 기분도 별로 였을 것이다.
여튼, 오늘 기분이 참 좋다. 앞으로 더 많은 친구들과 이런 자리를 가끔씩 만들어가면 좋겠다는 생각이다.
-----
Cheers,
June
형진, 정훈, 류선미, 김신실 그리고 나, 이렇게 다섯이서 "Gran Torino" 라는 영화를 압구정 CGV 에서 감상했다. 영화가 끝난 후 압구정 역 근처 "사보텐" 에서 저녁을 먹고 근처 Bar 에서 가볍에 한 잔씩 했다.
그런데 분위기나 너무 조용하고 사람도 없고 해서 다시 압구정 로데오 근처로 이동을 해서 "Crazy W.C" Bar 에 갔다. 다행히 오늘도 쇼를 많이 했다.잘 못마시는 술이지만, 칵테일, 무알콜 칵테일, 맥주, 칵테일 한 잔 더...
이렇게 많이 마셨다. 다 섯명이 모이니 여러가지 얘기들이 나왔는데 역시나 사람 사는 얘기가 참 듣기 좋았다. "Crazy W.C" Bar 에 바텐더인 귀엽고 상큼한 "Michelle"(nick) 과의 대화도 재미있었고, 특히나 우리가 선택한(?) 미셸이 게임에서 너무 아깝게 졌지만, 우리를 위해 원래는 세 잔 이었던 cocktail 을 다섯 잔을 만들어서 주어서 참 예뻤다. ^^ 맛있었는데 이름은 잘 모르겠다.
이대로 헤어지긴 아쉬워서 다른 곳을 가자고 제안을 했다. 다시 술집으로 향했다. "그림분식" 집을 조금 지나서 오른쪽에 "해신" 이라는 일식 술집이 있어서 그곳으로 향했다.
일본술은 처음이었던 것 같다. 역시나 이름은 잘 모르지만, 깔끔하면서도 끝이 술을 잘 못마시는 나에게도 좋은 향기를 주어서 다음에 다시 한 잔 더 마시고 싶다는 생각이 들었다. 사케와 오뎅국을 먹으면서 서로 여행을 다녀온 얘기 들을 했는데, 귀와 입이 너무 즐거웠다. 당장 이라도 여행을 가고 싶은 그런 느낌... ^^ 오랜만에 만나서 제법 많은 애기들을 하다 보니 나에겐 꽤 신선했다.
사실 오후 5시 40분에 만나서 영화를 보고 저녁을 먹고 술자리를 갖다보니 헤어질 무렵이 새벽 3시가 되었다. 회사에서 회식때를 빼고는 이렇게 친구들과 술자리를 오래 해본 경험이 없었는데, 웬지 모르게 내 자신이 그걸 즐기는 걸 보고 신기했다.
술자리를 싫어하는 내가 서로 마음이 통하고 정이 있는 학교 친구들이다 보니 내 마음이 많이 편했었나 보다. 아마 회사였다면 자리는 끝까지 지켰을지 몰라도 많이 피곤하고 기분도 별로 였을 것이다.
여튼, 오늘 기분이 참 좋다. 앞으로 더 많은 친구들과 이런 자리를 가끔씩 만들어가면 좋겠다는 생각이다.
-----
Cheers,
June
목요일, 3월 12, 2009
iDeneb Mac OS X 10.5.5 VMware 에서 해상도 설정 (Resolution)
iDeneb Mac OS X 10.5.5 VMware 에서 해상도 설정 (Resolution)
Source:
http://b4you.net/blog/tag/iDeneb%2010.5.5
해킨 에서 해상도 설정하기
해킨(iDeneb 10.5.5)을 VMWare에 설치 해서 그런지, 해상도가 1280*1024로 고정되어 있네요. 변경하려니 이상하게도 해상도 선택하는데에서 1280*1024 하나만 달랑 있더군요;;;
구글님한테 물어보면서 다닌 결과 방법이 있었습니다.
Last login: Fri Jan 30 16:08:38 on ttys000
users-vmware-virtual-platform:~ user$ su
Password:
sh-3.2# cd /Library/Preferences/SystemConfiguration/
sh-3.2# vi com.apple.Boot.plist
와 같이 한 뒤
(?xml version="1.0" encoding="UTF-8")
(!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd")
(plist version="1.0")
(dict)
(key) Graphics Mode (/key)
(string) 1024x768x32 (/string)
(key) Kernel (/key)
위의 "1024x768x32" 부분을 변경하면 됩니다.
-----
잊어 버릴까봐 적어 둔다.
Cheers,
June
Source:
http://b4you.net/blog/tag/iDeneb%2010.5.5
해킨 에서 해상도 설정하기
해킨(iDeneb 10.5.5)을 VMWare에 설치 해서 그런지, 해상도가 1280*1024로 고정되어 있네요. 변경하려니 이상하게도 해상도 선택하는데에서 1280*1024 하나만 달랑 있더군요;;;
구글님한테 물어보면서 다닌 결과 방법이 있었습니다.
Last login: Fri Jan 30 16:08:38 on ttys000
users-vmware-virtual-platform:~ user$ su
Password:
sh-3.2# cd /Library/Preferences/SystemConfiguration/
sh-3.2# vi com.apple.Boot.plist
와 같이 한 뒤
(?xml version="1.0" encoding="UTF-8")
(!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd")
(plist version="1.0")
(dict)
(key) Graphics Mode (/key)
(string) 1024x768x32 (/string)
(key) Kernel (/key)
위의 "1024x768x32" 부분을 변경하면 됩니다.
-----
잊어 버릴까봐 적어 둔다.
Cheers,
June
Darwin Boot Options
Source:
http://apple2pc.blogspot.com/2008/02/darwin-boot-options.html
Darwin Boot Options
when you boot your hackintosh you can press "F8" before you see the gray apple boot screen.

then you should see a menu with all the partitions you have, at this time you may choose between the partitions using up/down arrows (it defines what partition to load from).
another thing you can do at this boot prompt is to specify boot options.
note that the last line says: "boot:" this is your prompt, you may write one of the next options:
[Kernel Name]
[Kernel Flags]
[Boot Flags]
-s
-v
-f
-x
[Parameters]
cpus=
"Graphics Mode"=
rd=
config=
platform=
idlehalt=
legacy
[Info]
?memory
?video
[UnKnown flags]
debug=0x144
Kernel Name this boot option state what kernel to use in order to load the system, for instance you may use mach_kernel or any other kernel you downloaded and want to try (new EFI supporting kernel or new version of kernel), the kernel must be in folder "/"
Kernel Flags you can enter kernel flags that should be used during this boot time, kernel flags examples: debug=0x144 io=0xffffffff (not so sure what these guys do, but read more on kernel)
-s mean you would like to enter "Single User" mode which doesn't load GUI and doesn't mount partitions but gives you a prompt so you can make system maintenance and recovery procedures.
-v loads the system in Verbose mode which display allot of log lines during boot time and does not display the apple gray boot screen, it is good to use this option if things go wrong, or if you get an error screen and you want to know the reason.

-f tells the hackintosh to reload all kext (Kernel Extensions = drivers) and dump the cache, not rely on it (kext cache found in: /System/Library/Extensions.mkext, you can delete it manually and the system will recreate it)
the kext cache is built of the necessary kext that needs to be loaded and it will be created whenever it does not exist.
you can use a command line utility (from terminal) named: "mkextunpack" to extract the content and see what kext are cached for example the command:
mkextunpack -d /111 /System/Library/Extensions.mkext
will extract the content to a folder (that must exist before runing this command) /111
you can also use the command line utility "kextcache" to create or update kextcache.
-x this option boot the system into safe mode ignoring kext cache and loads only necessary kext
cpus= this parameter tells the hackintosh how many cpus to use, for instance if you have dual CPU or dual Core then you can state cpus=2, so the system will use both cpus, and if you get reboot without loading GUI or boot screen then you may use cpus=1 to allow use of one cpu and avoid reboot
"Graphics Mode"= this parameter tells the hackintosh to use stated graphics resolution and color depth, the pattern to use is: WidthxHeightxDepth@RefreshRate for instance a resolution of 640x480 with 32 bit color depth and 60 hertz frequancy refresh rate will look like this:
"Graphics Mode"="640x480x32@60"
rd= this parameter state what is the boot disk to use (instead of using the boot menu appearing before the prompt) you state the drive and partition in the pattern: diskXsY where X stands for the disk number (first disk (usually primary master in IDE) 0 second disk is 1 etc.) and Y stands for the partition on that disk starting with 1 as the first partition, so if you have one disk and one partition the parameter will look like this: rd=disk0s1
config= this parameter tells the system to load using different copy of the boot config file, the default copy used is kept in:
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
the content of this file state boot options such as:
timeout (how much time to wait for user selection in boot prompt)
kernel (what kernel to use)
kernel flags (what kernel flags to use in each and every boot)
quiet boot (weather to display boot menu or not)
boot graphics (if to boot with apple spinning circle)
etc.
platform= this parameter sets the platform to use at this boot time, you may use:
platform=ACPI (ACPI support)
platform=X86PC (non ACPI support)
platform=ACPI|86PC (try to support ACPI if fails do not support it)
idlehalt gets two values ether 1 or 0 stating true or false, if set to true then at idle time the cpu will halt causing power saving and cooling of CPU, if set to 0 then the cpu will allways run even in idle time.
idlehalt=0
idlehalt=1
-legacy causes the system to load in 32 bit mode while running on 64 bit systems
?memory this info screen display information about the memory on the machine
?video this info screen display information about the video card supported graphic modes
Enjoy
at 02:15
Labels: apple, boot options, darwin, hackintosh, leopard, mac
27 comments:
Fabrizio said...
Hi, my name is Fabrizio (Fab is enough)I'm writiting from italy. I've found this post via google and I wonder if you can help me. I've installed a kalyway dvd on a Acer notebook, Centrino 1.6, raw installation, whole disk. After some up and down the installation went fine and now is working. Tried on the same machine in Virtualbox, ubuntu&Xp, darwin won't boot cause PAE is not supported. Ok, triede WMware - same output. Even If I enable WMware for PAE. Do you know if it is possible to disable PAE at boot in darwin? Tnx for any help. You can find me at fabriziodotbuatgmaildotcom
Greetings from Italy
07 March, 2008 16:30
shay.bc said...
Fabrizio hi,
i don't have such problem, but i did some digging for you,
first let me ask this: if the disk image installation succeeded why would you like to install OS X as a vmWare or virtual box? it will be so slow (i tried it my self its like watching the stars move - very very slow)
but if you want to try it any way and the gray apple screen is crashing, then first thing to do is to use -v in the boot prompt and send the log you see,
the only thing i can see on the web related to vmware and PAE is this:
in the file: XXX.vmx write the parameter: paevm= "TRUE" to enable PAE and paevm= "FALSE" to disable it.
the (XXX.vmx on windows and XXX.cfg on linux) file should be in the folder where you decided to install the OS X VM , you can download a bootable copy of tiger in vmware here:
http://thepiratebay.org/tor/3985375/VMware_bootable_Apple_OSX (instructions included)
also check this post:
http://www.vmware.com/support/reference/common/pae_guest.html to understand how PAE is regarded in vmware
lastly this is a url that can generate your vmx file using GUI parameters you choose, then copy and paste into the vmx file (overwrite it)
http://www.easyvmx.com/expertform.shtml
if you succeed or fail please send the news i will try find more info and post it here.
08 March, 2008 12:51
Fabrizio said...
Thanks,
many things to test, it will take some time but I'll let you know.
About the reason why: I have to use windows on my noebook, for the time being i feel more confident in trying to carry along OSX in a box :) than the other way round. However, I've been told that stars actually move. :)
Thanks again.
Fab
08 March, 2008 15:35
shay.bc said...
hi Fab,
please note that there is a possibility to dual boot and choose at boot time between windows (vista/xp whatever) to os x (tiger/leopard).
i will add a post covering this issue.
Have Fun.
08 March, 2008 16:09
Faisal said...
Hi,
I have this strange problem
I installed leopard on a hardisk other than the main HDD which has xp installed
The insatllation went smoothly
but now niether does xp start nor does OSX
theres only this white screen with apple logo and it gets stuck
when I type -s i get this message that the firewire is not function 7 system is getting full secrue???
please help
09 March, 2008 20:41
shay.bc said...
hi faisal,
first of all do you see any boot options? such as Leopard/XP like in this post?
second try -v for verbose and try taking a picture or simply write the lines (some of it), try to find lines with the words: Exception, Error or Panic
and write them here i will try to help, also write what computer and hardware do you use.
next the line you talk about the FireWire does it looks like this:
" ERROR: FireWire unable to determine security-mode; defaulting to full-secure." if so then disregard it, it only means no security setup for the firewire so it is setting it to default (which is full security).
also please state that once you get past the error about the FireWire do you get any prompt? can you press enter or any key and get echo?
if so then Single mode is running and that is good news. in this case try this:
write;
/sbin/fsck -fy
press enter and then the system should write:
** The volume XXX appears to be OK
or:
***** FILE SYSTEM WAS MODIFIED *****
if it is the second option then do it again (the fsck command) until you get the first line saying it is ok
then write:
/sbin/mount - uw /
this should mount your file system and allow you to perform some tests in order to understand what is wrong and why the system is not booting.
now, if you can't single boot and can't understand (or send) data regarding the error then try re-installing and in the last screen (customize) choose only these options: (taken from iAtkos)
- Main System
- EFI Emulation
- Remove CPUPowerManagement
- Remove Thermal kext
- AppleSMBiosKext
thats it! don't add anything else especially not video screen or network kext.
if system boots then you can start searching for appropriate kext for your system.
regarding the XP, if you want to boot back from it try this:
from single mode or from install dvd (terminal) write:
fdisk -e /dev/rdiskX
where X stands for your hard disk number (first one is 0 second is 1 etc.)
then in the fdisk utility use ? for list of commands
now:
write p (short for print) and press enter then it will display a table of disks and partitions, if your XP reside on first HD on first partition do this:
f X
where X stands for the XP partition probably 1
then it should look like this:
f 1
and press enter, then write
u (short for update)
and press enter
then write:
w (short for write)
then press enter
lastly press q (quit)
then restart and XP should be bootable again.
so as summary then the commands should look like this:
boot single mode (after restart press F8, at the prompt write -s and press enter)
/usr/sbin/fdisk -e /dev/rdisk0
f 1
u
w
q
Reboot!
tell me how it goes.
Hope this helps
09 March, 2008 23:25
Arjun said...
Hi, Great post i must say. But dude need some help here. Am a SAP beginner. So I've a windows 2003 server installed on a 10 gb partition and windows XP installed on 40 gb partition. I've left around 50 gb for Leopard. I downloaded the kalyway iso.
The problem is that i can't risk installing leopard (with 2003 server and xp already installed) if i can't boot back to the window OS's. I've been digging quite a bit and skimming thru insanelymac forums.
I found this http://www.digwin.com/view/dual-boot-osx-leopard-or-tiger-with-vistaxp-on-your-regular-intelamd-pc . but am not sure how to go about it.
is there any fairly easier or detailed ( tough ) guides i cud use. I had jas 10.4.1 earlier. well that was long back. That time what i used to do was, Boot from a live ubuntu cd and goto the Root terminal. And give the commands : fdisk /dev/hda
and then type pfor the partitions list . and then select the booting partition. I used to hit F8 then before the grey screen and it showed all the booting partitions.
But now, in leopard installation and dual booting, i never came across this stratergy to dual boot xp and leopard.
Pls help dude.. !!
18 March, 2008 22:11
shay.bc said...
hi arjun,
ok, it is very much possible to dual boot and triple boot leopard with windows, ubuntu etc. i did it my self, its not hard at all,
the main idea is that windows will be installed first and on a different partition or different hard-drive,
after leopard is installed, its partition will be marked as active, so you can boot from leopard but not from other OS that was installed before, they appear on the menu but can't boot them,
after leopard boots and everything is working you can go back to fdisk and flag the windows partition as bootable
next you will need to fix the windows using windows install CD, and then windows will be bootable again,
now its time to get leopard back, from fdisk flag the leopard partition again and its bootable
after doing this you will be able to choose from the darwin menu to boot from windows or leopard,
there are many guides for dual booting, i will create one this weekend, you could check back and see all the relative screenshots,
any way if you want other guides and other methods, here are the links:
http://wiki.osx86project.org/wiki/index.php/Install_On_A_Partition_Simple_And_Accurate
http://dailyapps.net/2008/03/hack-attack-dual-boot-leopard-and-windows-vista/
http://wiki.osx86project.org/wiki/index.php/Vista_bootloader
http://wiki.osx86project.org/wiki/index.php/Multibooting
http://coolblog.profit42.com/2007/07/03/updated-osx-10410-dual-boot-guide/
nice video displaying triple boot:
http://video.aol.com/video-detail/osx86-triple-boot-vista-ubuntu-grub--working-efi/3284893641
18 March, 2008 23:10
Rodrigo S. "boi" said...
Hi, i'm trying to install mac-os leopard, the hackintosh version, i'm havin problens with the fire-wire, He said that neet do put-it to full-secure mode, and after it he return an error, and said that is waiting for a root device.
i dont now what to do...i'll thanks a loot if you can help me
28 March, 2008 21:59
shay.bc said...
hi rodrigo,
you can ignore the firewire line it is not the problem (just a warning),
but regarding the "waiting for a root device" line can you describe in what stage of the installation did you get it? (after the success screen and reboot?) did you install darwin and do the fdisk thing?
if so please send an exact copy of the text you gen on the hackintosh screen.
also send details on the hardware you use (this message usually comes up when no SATA/IDE drive is detected)
also describe how did you format the partition (disk util, journald...)
if you didn't even started the install and see this message then put both HD and DVD on the same IDE controller (primary) where HD is master and DVD is slave and you will be able to install, the procedure will be very slow though, but after the installation everything should work fast.
hope it helps
29 March, 2008 00:46
Parth nanavati said...
Hi
my name is PARTH, i've installed
iAKTOS V1.0iR2, it does not have darwin boot in utility.
after installation is does not boot at all and keep re booting as show in this vdo by someody else..
http://www.youtube.com/watch?v=asFhN5vq2c0
can you please help me
28 April, 2008 15:59
Fabrizio said...
Hi everybody.
I'm a little out of the matter right now (by the way, i have a PAE enabled CPU now) but it seems to me to remember I had the same problem using (via kalyway) a vanilla kernel on a non SS3 CPU (ie a non intel - core) I hade to go for a customized (re)installation removing the default vanilla kernel selection. Thet did the magic for me, hope willdo for you as well.
Have fun...
28 April, 2008 16:34
shay.hackintosh said...
hi Parth,
sorry for the late reply,
did you try the first aid steps?
they are:
1. checking the BIOS setup (see this post)
2. in the darwin prompt (after pressing F8) write: cpus=1 -v -x -f
3. goto the HCL and make sure that your hardware is supported.
let me know if the problem is solved or remains.
ShayBC.
29 April, 2008 23:49
shay.hackintosh said...
hi parth,
i missed the part where you say you don't have darwin boot loader but using the iatkos r2, then in customize (where you select the features to be installed) you should have the "x86 Darwin Bootloader" - select it!!!
also here are some more ideas:
1. try to install the leopard without the EFI.
2. try reinstalling with as minimum options you can (please see my post "Install Leopard")
3. write in the darwin prompt rd=diskXsY (where X is the number of the leopard drive starting from 0 and Y is the number of Leopard partition starting from 1 example: rd=disk0s1)
4. make sure (from windows) you have at least SSE2 using the CPUz utility
hope this helps,
ShayBC.
30 April, 2008 00:17
Daniel said...
Hello,
Thank you for writing these guides, they have been very useful so far.
I have a question for you: I am only able to boot into Leo if I use -f.
Is there anything I can do so as to not need to do this each time.
Thank you very, very much in advance
Daniel
29 August, 2008 02:11
shay.hackintosh said...
hi daniel,
first of i think you should automate the swich so you will not need to manually write it every time, see how to do that at this post
second, you need to specify what output do you get at the console (using the -v option in the darwin boot prompt) when you don't use the -f option, then i can suggest how to solved it.
the -f option reset the cached kext (drivers), so probably for some reason your hardware is changing from boot to boot (maybe you are using external USB drive and it keeps changing its number),
hope it gives you a direction,
Shay.
30 August, 2008 21:27
Daniel said...
Hi Shay
That worked perfectly, thank you so very much!
01 September, 2008 00:11
JL said...
hi.... greetings... JL here, hoping you can help me out. i've downloaded ideneb v1.1 - 10.5.4 from mininova...
my specs are:
- amd athlon 4400 dual core x2 64
- ide 40gig hard disk
- 64mb nvidia graphics card
first, i installed it without customizing, and i got an infinite reboot after the darwin bootup.
then, i erased again, then installed selecting all options in the customize installation. it now goes to the gray apple screen, but would end up with the error that i should press my power button, pc needs to shut down.
maybe you can help me out, on which options i should pick. just in case, you can see the ideneb in mininova. and also, what else i should've done.
thank you so much for your help in advance.
11 September, 2008 12:45
JL said...
by the way, here's my motherboard: http://www.msicomputer.com/product/p_spec.asp?model=K9N6SGM-V
JL. your help is very much appreciated and thank you so much :)
11 September, 2008 13:05
shay.hackintosh said...
hi JL,
sorry for not seeing thiscomment before, please use switch -v and write here the error you get
01 November, 2008 19:09
jrd8307 said...
Hello,
I have a strange rebooting problem. That I have researched for hours and have not found an answer that I am hoping you can help me with.
Here is my info:
Using iDeneb 10.5.5
Averatec 2575 Laptop
AMD TL-60 CPU
4GB Memory
SATA Hard Drive
SATA DVD Drive
VESA v2.0 16MB (ATI ATOMBIOS)
Loading Darwin/x86
Loading Kernel mach_kernel
Loading HFS+ file: [mach_kernel] from 42302f0
Loading HFS+ file: [mach_kernel] from 42302f0
LoadDrivers : Loeading from [/System/Library/Extensions.mkext]
Loading HFS+ file: [/System/Library/Extensions.mkext] from 42302f0
Loading HFS+ file: [/System/Library/Extensions.mkext] from 42302f0
Starting Darwin/x86
================================================== =====
After “Starting Darwin/x86” PC reboot immediately
I have tried different combinations of -V -X -S -F, CPUS=1, etc. still reboots immediately. Again thanks for any help and information in resolving this. God Bless
09 November, 2008 07:12
shay.hackintosh said...
hi jrd8307,
the only reason i can see for constatnt reboot is that the distribution you use (in your case iDeneb) does not support your hardware (board and/or CPU) so one solution is to use cpus=1 and hope that the double core is the problem and that will solve it, but as i can see you have already tried this solution without success, another thing you can do to avoid hackintosh constant reboot, or immidiate reboot, or reboot loop, is to try another distribution like kalyway or iAtkos or JAS, or Leo4all etc. (and then upgrade them to 10.5.5), see this post for distributions list:http://apple2pc.blogspot.com/2008/03/download-hackintosh-os-x-leopard.html
also try to inject another kernel into your installation DVD, that might solve it, link to inject guide: http://osx86.wikidot.com/how-to-s
Shay.
14 November, 2008 08:31
Hatch said...
Hi Shay,
You have some excellent guides and technical information here, could you tell me is it yet possible to boot into MAC Osx from Darwin by default into a non-active partition?
It is a bug that occurs if you use the Vista boot loader for multi-boots:
http://neosmart.net/forums/showthread.php?t=1018
02 December, 2008 11:54
aziz said...
bro..
i have a problem..
my proc T5500 always use cpus=1
how about fsb?
more info pls...
03 February, 2009 05:33
Stefan said...
Hi, i tried to install the iATKOS version, but it doesn't work. i get the grey background with apple logo and the "ring" turns around but nothing happens next, i waited for an hour...
i also tried with: -v -x -f -s cpus=1 and it stopped at one point:
MAC Framework successfully initialized using 18485 buffer headers and 4896 cluster IO buffer headers
Extension "com.apple.driver.ACPI_SMC_PlatformPlugin" has immediate dependencies on both com.apple.kernel and com.apple.kpi components; use only one style.
what does it means?
i'm happy if you could help me,
greatings from germany
18 February, 2009 18:36
chase said...
Hello,
Thanks for the guides they have been helping a tremendous amount. However I have two reoccurring problems I would like to request help with.
Lately when attempting to install Os X (ideneb 10.5.5) my system has given me the still waiting on root device. Once rd=disk0 -v was entered this problem was bypassed. Now every time I can get past this issue the install hangs at this message:
BSD process name corresponding to current thread: kernel_task
Mac OS version:
Not yet set
Kernel Version:(varies from distro i've tried both Leo4all and ideneb 1.3 and 10.5.5)
The other problem I've had and this one truly confuses me, though OS X will not install, I have and still can boot into OS X, when using Ideneb 10.5.5 the ide 100gb hdd I've been using to install shows up as the OS X drive, and most everything functions; only laggly as if it was running as a "livecd". I have never been prompted to install OS X, not once have I been promoted to partition the hard drive, or install drivers. Any ideas?
Thank you,
William
24 February, 2009 05:27
Stefan said...
hello again,
i used a newer version of iDeneb and everything go right.
nevertheless thanks for the good forum and guides here.
greetings
02 March, 2009 09:54
-----
잊어 버릴까봐 적어 둔다.
Cheers,
June
http://apple2pc.blogspot.com/2008/02/darwin-boot-options.html
Darwin Boot Options
when you boot your hackintosh you can press "F8" before you see the gray apple boot screen.
then you should see a menu with all the partitions you have, at this time you may choose between the partitions using up/down arrows (it defines what partition to load from).
another thing you can do at this boot prompt is to specify boot options.
note that the last line says: "boot:" this is your prompt, you may write one of the next options:
[Kernel Name]
[Kernel Flags]
[Boot Flags]
-s
-v
-f
-x
[Parameters]
cpus=
"Graphics Mode"=
rd=
config=
platform=
idlehalt=
legacy
[Info]
?memory
?video
[UnKnown flags]
debug=0x144
Kernel Name this boot option state what kernel to use in order to load the system, for instance you may use mach_kernel or any other kernel you downloaded and want to try (new EFI supporting kernel or new version of kernel), the kernel must be in folder "/"
Kernel Flags you can enter kernel flags that should be used during this boot time, kernel flags examples: debug=0x144 io=0xffffffff (not so sure what these guys do, but read more on kernel)
-s mean you would like to enter "Single User" mode which doesn't load GUI and doesn't mount partitions but gives you a prompt so you can make system maintenance and recovery procedures.
-v loads the system in Verbose mode which display allot of log lines during boot time and does not display the apple gray boot screen, it is good to use this option if things go wrong, or if you get an error screen and you want to know the reason.

-f tells the hackintosh to reload all kext (Kernel Extensions = drivers) and dump the cache, not rely on it (kext cache found in: /System/Library/Extensions.mkext, you can delete it manually and the system will recreate it)
the kext cache is built of the necessary kext that needs to be loaded and it will be created whenever it does not exist.
you can use a command line utility (from terminal) named: "mkextunpack" to extract the content and see what kext are cached for example the command:
mkextunpack -d /111 /System/Library/Extensions.mkext
will extract the content to a folder (that must exist before runing this command) /111
you can also use the command line utility "kextcache" to create or update kextcache.
-x this option boot the system into safe mode ignoring kext cache and loads only necessary kext
cpus= this parameter tells the hackintosh how many cpus to use, for instance if you have dual CPU or dual Core then you can state cpus=2, so the system will use both cpus, and if you get reboot without loading GUI or boot screen then you may use cpus=1 to allow use of one cpu and avoid reboot
"Graphics Mode"= this parameter tells the hackintosh to use stated graphics resolution and color depth, the pattern to use is: WidthxHeightxDepth@RefreshRate for instance a resolution of 640x480 with 32 bit color depth and 60 hertz frequancy refresh rate will look like this:
"Graphics Mode"="640x480x32@60"
rd= this parameter state what is the boot disk to use (instead of using the boot menu appearing before the prompt) you state the drive and partition in the pattern: diskXsY where X stands for the disk number (first disk (usually primary master in IDE) 0 second disk is 1 etc.) and Y stands for the partition on that disk starting with 1 as the first partition, so if you have one disk and one partition the parameter will look like this: rd=disk0s1
config= this parameter tells the system to load using different copy of the boot config file, the default copy used is kept in:
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
the content of this file state boot options such as:
timeout (how much time to wait for user selection in boot prompt)
kernel (what kernel to use)
kernel flags (what kernel flags to use in each and every boot)
quiet boot (weather to display boot menu or not)
boot graphics (if to boot with apple spinning circle)
etc.
platform= this parameter sets the platform to use at this boot time, you may use:
platform=ACPI (ACPI support)
platform=X86PC (non ACPI support)
platform=ACPI|86PC (try to support ACPI if fails do not support it)
idlehalt gets two values ether 1 or 0 stating true or false, if set to true then at idle time the cpu will halt causing power saving and cooling of CPU, if set to 0 then the cpu will allways run even in idle time.
idlehalt=0
idlehalt=1
-legacy causes the system to load in 32 bit mode while running on 64 bit systems
?memory this info screen display information about the memory on the machine
?video this info screen display information about the video card supported graphic modes
Enjoy
at 02:15
Labels: apple, boot options, darwin, hackintosh, leopard, mac
27 comments:
Fabrizio said...
Hi, my name is Fabrizio (Fab is enough)I'm writiting from italy. I've found this post via google and I wonder if you can help me. I've installed a kalyway dvd on a Acer notebook, Centrino 1.6, raw installation, whole disk. After some up and down the installation went fine and now is working. Tried on the same machine in Virtualbox, ubuntu&Xp, darwin won't boot cause PAE is not supported. Ok, triede WMware - same output. Even If I enable WMware for PAE. Do you know if it is possible to disable PAE at boot in darwin? Tnx for any help. You can find me at fabriziodotbuatgmaildotcom
Greetings from Italy
07 March, 2008 16:30
shay.bc said...
Fabrizio hi,
i don't have such problem, but i did some digging for you,
first let me ask this: if the disk image installation succeeded why would you like to install OS X as a vmWare or virtual box? it will be so slow (i tried it my self its like watching the stars move - very very slow)
but if you want to try it any way and the gray apple screen is crashing, then first thing to do is to use -v in the boot prompt and send the log you see,
the only thing i can see on the web related to vmware and PAE is this:
in the file: XXX.vmx write the parameter: paevm= "TRUE" to enable PAE and paevm= "FALSE" to disable it.
the (XXX.vmx on windows and XXX.cfg on linux) file should be in the folder where you decided to install the OS X VM , you can download a bootable copy of tiger in vmware here:
http://thepiratebay.org/tor/3985375/VMware_bootable_Apple_OSX (instructions included)
also check this post:
http://www.vmware.com/support/reference/common/pae_guest.html to understand how PAE is regarded in vmware
lastly this is a url that can generate your vmx file using GUI parameters you choose, then copy and paste into the vmx file (overwrite it)
http://www.easyvmx.com/expertform.shtml
if you succeed or fail please send the news i will try find more info and post it here.
08 March, 2008 12:51
Fabrizio said...
Thanks,
many things to test, it will take some time but I'll let you know.
About the reason why: I have to use windows on my noebook, for the time being i feel more confident in trying to carry along OSX in a box :) than the other way round. However, I've been told that stars actually move. :)
Thanks again.
Fab
08 March, 2008 15:35
shay.bc said...
hi Fab,
please note that there is a possibility to dual boot and choose at boot time between windows (vista/xp whatever) to os x (tiger/leopard).
i will add a post covering this issue.
Have Fun.
08 March, 2008 16:09
Faisal said...
Hi,
I have this strange problem
I installed leopard on a hardisk other than the main HDD which has xp installed
The insatllation went smoothly
but now niether does xp start nor does OSX
theres only this white screen with apple logo and it gets stuck
when I type -s i get this message that the firewire is not function 7 system is getting full secrue???
please help
09 March, 2008 20:41
shay.bc said...
hi faisal,
first of all do you see any boot options? such as Leopard/XP like in this post?
second try -v for verbose and try taking a picture or simply write the lines (some of it), try to find lines with the words: Exception, Error or Panic
and write them here i will try to help, also write what computer and hardware do you use.
next the line you talk about the FireWire does it looks like this:
" ERROR: FireWire unable to determine security-mode; defaulting to full-secure." if so then disregard it, it only means no security setup for the firewire so it is setting it to default (which is full security).
also please state that once you get past the error about the FireWire do you get any prompt? can you press enter or any key and get echo?
if so then Single mode is running and that is good news. in this case try this:
write;
/sbin/fsck -fy
press enter and then the system should write:
** The volume XXX appears to be OK
or:
***** FILE SYSTEM WAS MODIFIED *****
if it is the second option then do it again (the fsck command) until you get the first line saying it is ok
then write:
/sbin/mount - uw /
this should mount your file system and allow you to perform some tests in order to understand what is wrong and why the system is not booting.
now, if you can't single boot and can't understand (or send) data regarding the error then try re-installing and in the last screen (customize) choose only these options: (taken from iAtkos)
- Main System
- EFI Emulation
- Remove CPUPowerManagement
- Remove Thermal kext
- AppleSMBiosKext
thats it! don't add anything else especially not video screen or network kext.
if system boots then you can start searching for appropriate kext for your system.
regarding the XP, if you want to boot back from it try this:
from single mode or from install dvd (terminal) write:
fdisk -e /dev/rdiskX
where X stands for your hard disk number (first one is 0 second is 1 etc.)
then in the fdisk utility use ? for list of commands
now:
write p (short for print) and press enter then it will display a table of disks and partitions, if your XP reside on first HD on first partition do this:
f X
where X stands for the XP partition probably 1
then it should look like this:
f 1
and press enter, then write
u (short for update)
and press enter
then write:
w (short for write)
then press enter
lastly press q (quit)
then restart and XP should be bootable again.
so as summary then the commands should look like this:
boot single mode (after restart press F8, at the prompt write -s and press enter)
/usr/sbin/fdisk -e /dev/rdisk0
f 1
u
w
q
Reboot!
tell me how it goes.
Hope this helps
09 March, 2008 23:25
Arjun said...
Hi, Great post i must say. But dude need some help here. Am a SAP beginner. So I've a windows 2003 server installed on a 10 gb partition and windows XP installed on 40 gb partition. I've left around 50 gb for Leopard. I downloaded the kalyway iso.
The problem is that i can't risk installing leopard (with 2003 server and xp already installed) if i can't boot back to the window OS's. I've been digging quite a bit and skimming thru insanelymac forums.
I found this http://www.digwin.com/view/dual-boot-osx-leopard-or-tiger-with-vistaxp-on-your-regular-intelamd-pc . but am not sure how to go about it.
is there any fairly easier or detailed ( tough ) guides i cud use. I had jas 10.4.1 earlier. well that was long back. That time what i used to do was, Boot from a live ubuntu cd and goto the Root terminal. And give the commands : fdisk /dev/hda
and then type pfor the partitions list . and then select the booting partition. I used to hit F8 then before the grey screen and it showed all the booting partitions.
But now, in leopard installation and dual booting, i never came across this stratergy to dual boot xp and leopard.
Pls help dude.. !!
18 March, 2008 22:11
shay.bc said...
hi arjun,
ok, it is very much possible to dual boot and triple boot leopard with windows, ubuntu etc. i did it my self, its not hard at all,
the main idea is that windows will be installed first and on a different partition or different hard-drive,
after leopard is installed, its partition will be marked as active, so you can boot from leopard but not from other OS that was installed before, they appear on the menu but can't boot them,
after leopard boots and everything is working you can go back to fdisk and flag the windows partition as bootable
next you will need to fix the windows using windows install CD, and then windows will be bootable again,
now its time to get leopard back, from fdisk flag the leopard partition again and its bootable
after doing this you will be able to choose from the darwin menu to boot from windows or leopard,
there are many guides for dual booting, i will create one this weekend, you could check back and see all the relative screenshots,
any way if you want other guides and other methods, here are the links:
http://wiki.osx86project.org/wiki/index.php/Install_On_A_Partition_Simple_And_Accurate
http://dailyapps.net/2008/03/hack-attack-dual-boot-leopard-and-windows-vista/
http://wiki.osx86project.org/wiki/index.php/Vista_bootloader
http://wiki.osx86project.org/wiki/index.php/Multibooting
http://coolblog.profit42.com/2007/07/03/updated-osx-10410-dual-boot-guide/
nice video displaying triple boot:
http://video.aol.com/video-detail/osx86-triple-boot-vista-ubuntu-grub--working-efi/3284893641
18 March, 2008 23:10
Rodrigo S. "boi" said...
Hi, i'm trying to install mac-os leopard, the hackintosh version, i'm havin problens with the fire-wire, He said that neet do put-it to full-secure mode, and after it he return an error, and said that is waiting for a root device.
i dont now what to do...i'll thanks a loot if you can help me
28 March, 2008 21:59
shay.bc said...
hi rodrigo,
you can ignore the firewire line it is not the problem (just a warning),
but regarding the "waiting for a root device" line can you describe in what stage of the installation did you get it? (after the success screen and reboot?) did you install darwin and do the fdisk thing?
if so please send an exact copy of the text you gen on the hackintosh screen.
also send details on the hardware you use (this message usually comes up when no SATA/IDE drive is detected)
also describe how did you format the partition (disk util, journald...)
if you didn't even started the install and see this message then put both HD and DVD on the same IDE controller (primary) where HD is master and DVD is slave and you will be able to install, the procedure will be very slow though, but after the installation everything should work fast.
hope it helps
29 March, 2008 00:46
Parth nanavati said...
Hi
my name is PARTH, i've installed
iAKTOS V1.0iR2, it does not have darwin boot in utility.
after installation is does not boot at all and keep re booting as show in this vdo by someody else..
http://www.youtube.com/watch?v=asFhN5vq2c0
can you please help me
28 April, 2008 15:59
Fabrizio said...
Hi everybody.
I'm a little out of the matter right now (by the way, i have a PAE enabled CPU now) but it seems to me to remember I had the same problem using (via kalyway) a vanilla kernel on a non SS3 CPU (ie a non intel - core) I hade to go for a customized (re)installation removing the default vanilla kernel selection. Thet did the magic for me, hope willdo for you as well.
Have fun...
28 April, 2008 16:34
shay.hackintosh said...
hi Parth,
sorry for the late reply,
did you try the first aid steps?
they are:
1. checking the BIOS setup (see this post)
2. in the darwin prompt (after pressing F8) write: cpus=1 -v -x -f
3. goto the HCL and make sure that your hardware is supported.
let me know if the problem is solved or remains.
ShayBC.
29 April, 2008 23:49
shay.hackintosh said...
hi parth,
i missed the part where you say you don't have darwin boot loader but using the iatkos r2, then in customize (where you select the features to be installed) you should have the "x86 Darwin Bootloader" - select it!!!
also here are some more ideas:
1. try to install the leopard without the EFI.
2. try reinstalling with as minimum options you can (please see my post "Install Leopard")
3. write in the darwin prompt rd=diskXsY (where X is the number of the leopard drive starting from 0 and Y is the number of Leopard partition starting from 1 example: rd=disk0s1)
4. make sure (from windows) you have at least SSE2 using the CPUz utility
hope this helps,
ShayBC.
30 April, 2008 00:17
Daniel said...
Hello,
Thank you for writing these guides, they have been very useful so far.
I have a question for you: I am only able to boot into Leo if I use -f.
Is there anything I can do so as to not need to do this each time.
Thank you very, very much in advance
Daniel
29 August, 2008 02:11
shay.hackintosh said...
hi daniel,
first of i think you should automate the swich so you will not need to manually write it every time, see how to do that at this post
second, you need to specify what output do you get at the console (using the -v option in the darwin boot prompt) when you don't use the -f option, then i can suggest how to solved it.
the -f option reset the cached kext (drivers), so probably for some reason your hardware is changing from boot to boot (maybe you are using external USB drive and it keeps changing its number),
hope it gives you a direction,
Shay.
30 August, 2008 21:27
Daniel said...
Hi Shay
That worked perfectly, thank you so very much!
01 September, 2008 00:11
JL said...
hi.... greetings... JL here, hoping you can help me out. i've downloaded ideneb v1.1 - 10.5.4 from mininova...
my specs are:
- amd athlon 4400 dual core x2 64
- ide 40gig hard disk
- 64mb nvidia graphics card
first, i installed it without customizing, and i got an infinite reboot after the darwin bootup.
then, i erased again, then installed selecting all options in the customize installation. it now goes to the gray apple screen, but would end up with the error that i should press my power button, pc needs to shut down.
maybe you can help me out, on which options i should pick. just in case, you can see the ideneb in mininova. and also, what else i should've done.
thank you so much for your help in advance.
11 September, 2008 12:45
JL said...
by the way, here's my motherboard: http://www.msicomputer.com/product/p_spec.asp?model=K9N6SGM-V
JL. your help is very much appreciated and thank you so much :)
11 September, 2008 13:05
shay.hackintosh said...
hi JL,
sorry for not seeing thiscomment before, please use switch -v and write here the error you get
01 November, 2008 19:09
jrd8307 said...
Hello,
I have a strange rebooting problem. That I have researched for hours and have not found an answer that I am hoping you can help me with.
Here is my info:
Using iDeneb 10.5.5
Averatec 2575 Laptop
AMD TL-60 CPU
4GB Memory
SATA Hard Drive
SATA DVD Drive
VESA v2.0 16MB (ATI ATOMBIOS)
Loading Darwin/x86
Loading Kernel mach_kernel
Loading HFS+ file: [mach_kernel] from 42302f0
Loading HFS+ file: [mach_kernel] from 42302f0
LoadDrivers : Loeading from [/System/Library/Extensions.mkext]
Loading HFS+ file: [/System/Library/Extensions.mkext] from 42302f0
Loading HFS+ file: [/System/Library/Extensions.mkext] from 42302f0
Starting Darwin/x86
================================================== =====
After “Starting Darwin/x86” PC reboot immediately
I have tried different combinations of -V -X -S -F, CPUS=1, etc. still reboots immediately. Again thanks for any help and information in resolving this. God Bless
09 November, 2008 07:12
shay.hackintosh said...
hi jrd8307,
the only reason i can see for constatnt reboot is that the distribution you use (in your case iDeneb) does not support your hardware (board and/or CPU) so one solution is to use cpus=1 and hope that the double core is the problem and that will solve it, but as i can see you have already tried this solution without success, another thing you can do to avoid hackintosh constant reboot, or immidiate reboot, or reboot loop, is to try another distribution like kalyway or iAtkos or JAS, or Leo4all etc. (and then upgrade them to 10.5.5), see this post for distributions list:http://apple2pc.blogspot.com/2008/03/download-hackintosh-os-x-leopard.html
also try to inject another kernel into your installation DVD, that might solve it, link to inject guide: http://osx86.wikidot.com/how-to-s
Shay.
14 November, 2008 08:31
Hatch said...
Hi Shay,
You have some excellent guides and technical information here, could you tell me is it yet possible to boot into MAC Osx from Darwin by default into a non-active partition?
It is a bug that occurs if you use the Vista boot loader for multi-boots:
http://neosmart.net/forums/showthread.php?t=1018
02 December, 2008 11:54
aziz said...
bro..
i have a problem..
my proc T5500 always use cpus=1
how about fsb?
more info pls...
03 February, 2009 05:33
Stefan said...
Hi, i tried to install the iATKOS version, but it doesn't work. i get the grey background with apple logo and the "ring" turns around but nothing happens next, i waited for an hour...
i also tried with: -v -x -f -s cpus=1 and it stopped at one point:
MAC Framework successfully initialized using 18485 buffer headers and 4896 cluster IO buffer headers
Extension "com.apple.driver.ACPI_SMC_PlatformPlugin" has immediate dependencies on both com.apple.kernel and com.apple.kpi components; use only one style.
what does it means?
i'm happy if you could help me,
greatings from germany
18 February, 2009 18:36
chase said...
Hello,
Thanks for the guides they have been helping a tremendous amount. However I have two reoccurring problems I would like to request help with.
Lately when attempting to install Os X (ideneb 10.5.5) my system has given me the still waiting on root device. Once rd=disk0 -v was entered this problem was bypassed. Now every time I can get past this issue the install hangs at this message:
BSD process name corresponding to current thread: kernel_task
Mac OS version:
Not yet set
Kernel Version:(varies from distro i've tried both Leo4all and ideneb 1.3 and 10.5.5)
The other problem I've had and this one truly confuses me, though OS X will not install, I have and still can boot into OS X, when using Ideneb 10.5.5 the ide 100gb hdd I've been using to install shows up as the OS X drive, and most everything functions; only laggly as if it was running as a "livecd". I have never been prompted to install OS X, not once have I been promoted to partition the hard drive, or install drivers. Any ideas?
Thank you,
William
24 February, 2009 05:27
Stefan said...
hello again,
i used a newer version of iDeneb and everything go right.
nevertheless thanks for the good forum and guides here.
greetings
02 March, 2009 09:54
-----
잊어 버릴까봐 적어 둔다.
Cheers,
June
Talks Pattie Maes & Pranav Mistry: Unveiling the "Sixth Sense," game-changing wearable tech
Talks Pattie Maes & Pranav Mistry: Unveiling the "Sixth Sense," game-changing wearable tech
Source:
http://www.ted.com/index.php/talks/pattie_maes_demos_the_sixth_sense.html
-----
Cheers,
June
Source:
http://www.ted.com/index.php/talks/pattie_maes_demos_the_sixth_sense.html
-----
Cheers,
June
화요일, 3월 10, 2009
일기 (2009.03.10)
아침 출근때의 일이다.
방문을 나서고 밖을 나설 때의 일이다...
내 손에 뭔가 허전하다는 느낌이 들었다.
헉...
그렇다...
key 들을 방안에 두고 문을 모두 잠궈버린 것이다.
순간 난감했다.
안쪽에서 잠근 문을 나서고 나서 당당히 문을 닫았던 내 자신이 너무 싫었다.
너무도 냉정했다.
하지만 이미 때는 늦었다.
하루 전 보조키들을 만지작 거릴 때의 내 모습이 스쳐지나간다.
내 금같은 15,000원. 3일 점심 값이다.
문을 열려고 해볼 수 있는 방법은 모두 해보았다.
물론 문을 부수는 방법은 빼고...
하지만, 결국 key 전문점에 연락해서 문을 열수 있었다.
휴대용 장비 몇몇으로 20초도 안되는 시간에 몇 번 만지작 거리니 문이 열렸다.
내 인생의 가장 당황스런 시간이었다.
key 하나 때문에 아니, 나의 한 순간의 방심으로 내 눈 앞에서 15,000 원 이라는 돈이 순식간에 사라져 버린 것이다.
앞으로 two-job 으로 key 전문 engineering 을 배워야 할까보다.
내가 보기엔 너무나도 쉽게 돈을 버는 것 같았다.
오늘은 배가 너무 아프다...
결국... 15,000 원 이라는 돈으로 액땜을 했다고 나름 혼자서 합리화 했다.
부디 앞으로 좋은 일 들만 있기를...
...
아,,,나... 이왕 생각난거 다시 login 해서 또 하나 적는다...
전에는 말이지...
보일러를 분명히 끄고 잤던것 같은데,
아침에 씻고 나서 보니 보일러가 그때까지 켜져 있던거야.
나 왜이러니...
아~~~ 무지 짜증난다... 내 15,000 원...
-----
Cheers,
June
방문을 나서고 밖을 나설 때의 일이다...
내 손에 뭔가 허전하다는 느낌이 들었다.
헉...
그렇다...
key 들을 방안에 두고 문을 모두 잠궈버린 것이다.
순간 난감했다.
안쪽에서 잠근 문을 나서고 나서 당당히 문을 닫았던 내 자신이 너무 싫었다.
너무도 냉정했다.
하지만 이미 때는 늦었다.
하루 전 보조키들을 만지작 거릴 때의 내 모습이 스쳐지나간다.
내 금같은 15,000원. 3일 점심 값이다.
문을 열려고 해볼 수 있는 방법은 모두 해보았다.
물론 문을 부수는 방법은 빼고...
하지만, 결국 key 전문점에 연락해서 문을 열수 있었다.
휴대용 장비 몇몇으로 20초도 안되는 시간에 몇 번 만지작 거리니 문이 열렸다.
내 인생의 가장 당황스런 시간이었다.
key 하나 때문에 아니, 나의 한 순간의 방심으로 내 눈 앞에서 15,000 원 이라는 돈이 순식간에 사라져 버린 것이다.
앞으로 two-job 으로 key 전문 engineering 을 배워야 할까보다.
내가 보기엔 너무나도 쉽게 돈을 버는 것 같았다.
오늘은 배가 너무 아프다...
결국... 15,000 원 이라는 돈으로 액땜을 했다고 나름 혼자서 합리화 했다.
부디 앞으로 좋은 일 들만 있기를...
...
아,,,나... 이왕 생각난거 다시 login 해서 또 하나 적는다...
전에는 말이지...
보일러를 분명히 끄고 잤던것 같은데,
아침에 씻고 나서 보니 보일러가 그때까지 켜져 있던거야.
나 왜이러니...
아~~~ 무지 짜증난다... 내 15,000 원...
-----
Cheers,
June
금요일, 3월 06, 2009
e1000 NIC driver couldn't find in windows xp on vmware player
e1000 NIC driver couldn't find in windows xp on vmware player
Source:
http://www.sysdigg.com/solved-cannot-find-network-card-in-windows-xp-guest-on-vmware-esx
이것 때문에 조금 짜증이 났었다.
Vmware player 2.5.0 에 Windows XP SP2 를 설치를 했는데, 네트워크 드라이버가 없어서 NIC 를 사용할 수가 없었다.
하지만, 아래와 같이 해당 vmware OS 이미지(나의 경우 Windows XP) 디렉터리로 이동 후 vmx(vmware configuration file) 파일을 열어 ethernet0.virtualDev = "e1000" 에서 "e1000" 을 "vlance" 로 설정을 해주었더니 한번에 해결되었다.
* 주의: vmx 파일을 수정하기 전에 해당 guest OS 를 suspend 하지 말고 Power off and Exit 한다.
아래는 영어권 사용자를 위해 영문으로 작성 해놓는다.
Solve:
1. open your guest OS's vmx file. (xxx.vmx)
2. replace "e1000" just by "vlance" like this
#ethernet0.virtualDev = "e1000"
ethernet0.virtualDev = "vlance"
now, start your windows xp and then check your network.
-----
Cheers,
June
Source:
http://www.sysdigg.com/solved-cannot-find-network-card-in-windows-xp-guest-on-vmware-esx
이것 때문에 조금 짜증이 났었다.
Vmware player 2.5.0 에 Windows XP SP2 를 설치를 했는데, 네트워크 드라이버가 없어서 NIC 를 사용할 수가 없었다.
하지만, 아래와 같이 해당 vmware OS 이미지(나의 경우 Windows XP) 디렉터리로 이동 후 vmx(vmware configuration file) 파일을 열어 ethernet0.virtualDev = "e1000" 에서 "e1000" 을 "vlance" 로 설정을 해주었더니 한번에 해결되었다.
* 주의: vmx 파일을 수정하기 전에 해당 guest OS 를 suspend 하지 말고 Power off and Exit 한다.
아래는 영어권 사용자를 위해 영문으로 작성 해놓는다.
Solve:
1. open your guest OS's vmx file. (xxx.vmx)
2. replace "e1000" just by "vlance" like this
#ethernet0.virtualDev = "e1000"
ethernet0.virtualDev = "vlance"
now, start your windows xp and then check your network.
-----
Cheers,
June
목요일, 2월 26, 2009
VMware Demos Two Operating Systems On Mobile Phone
Source:
http://www.itpro.co.uk/609997/video-two-operating-systems-on-one-phone
VMware demos its mobile virtualisation platform at its European conference.
By Nicole Kobie in Cannes, 26 Feb 2009 at 01:17
Mobile phone manufacturers are currently "evaluating" new virtualisation technology which would let customers run two operating systems on one phone, or move their phone's contacts, apps and other data from handset to handset more easily.
VMware demoed a Nokia N800 featuring its mobile hypervisor at its VMworld Europe conference in Cannes today, showing Windows CE and Google's Android running at the same time.
Read the full story on mobile virtualisation here, or watch the video below for a quick demo of the system from Julia Alston, VMware's head of mobile virtualisation engineering, straight from the rather noisy show floor in Cannes.
Click here for more virtualisation news from VMworld Europe 2009.
-----
isn't it great ? lol
Cheers,
June.
http://www.itpro.co.uk/609997/video-two-operating-systems-on-one-phone
VMware demos its mobile virtualisation platform at its European conference.
By Nicole Kobie in Cannes, 26 Feb 2009 at 01:17
Mobile phone manufacturers are currently "evaluating" new virtualisation technology which would let customers run two operating systems on one phone, or move their phone's contacts, apps and other data from handset to handset more easily.
VMware demoed a Nokia N800 featuring its mobile hypervisor at its VMworld Europe conference in Cannes today, showing Windows CE and Google's Android running at the same time.
Read the full story on mobile virtualisation here, or watch the video below for a quick demo of the system from Julia Alston, VMware's head of mobile virtualisation engineering, straight from the rather noisy show floor in Cannes.
Click here for more virtualisation news from VMworld Europe 2009.
-----
isn't it great ? lol
Cheers,
June.
수요일, 2월 04, 2009
처음으로 T옴니아폰 응용프로그램을 개발하려면?
Source: http://blogs.msdn.com/jinhoseo/archive/2008/12/23/0-t.aspx?CommentPosted=true#commentmessage
처음으로 T옴니아폰 응용프로그램을 개발하려면?
T옴니아 윈도우 모바일 소프트웨어 경진대회 개발자 워크삽이 개최되었는 지도 2주가 넘었습니다. 이미 mysmart 웹 사이트 Q&A에 공모전에 도전하시는 분들이 수많은 기술적인 질문들을 올리고 계십니다. 이에 계속해서 답변을 제가 하고 있는데 오늘은 초보자분들을 위해 처음으로 T옴니아폰 응용 프로그램을 개발하려면 어떻게 해야 하는가에 대해 블로깅을 하도록 하겠습니다.
아무래도 개발을 처음 하시는 분들에게 나설지 모르겠지만 T옴니아폰은 윈도우 모바일 6.1 플랫폼으로 개발되어 있기 때문에 그것에 관한 개발도구와 SDK를 다운로드를 받아야 합니다.
개발 환경 꾸미기를 한다면 다음과 같은 절차를 진행해 주시기를 권장합니다.
1. Windows XP Service Pack 2 또는 Windows Vista 운영체제 설치
1) Windows XP 서비스팩2 운영체제에서는 T옴니아폰과 PC와의 연결을 하기 위해서는 액티브 싱크(ActiveSync)가 필요합니다. 최신 버전은 4.5 입니다.
http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=9e641c34-6f7f-404d-a04b-dc09f8141141
2) Windows Vista 운영체제에서는 Windows Mobile Device Center 가 6.1 로 업데이트가 필요합니다.
http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=46f72df1-e46a-4a5f-a791-09f07aaa1914
2. 개발 도구로는 한글이든 영문이든 Visual Studio 2008 Professional Edition 이상이 있어야 합니다. 워크삽 때에는 Visual Studio Team System 평가판을 제공해 드렸습니다. 받지 못했거나 필요하신 분들은 아래의 URL에서 다운로드 받으실 수 있습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=83c3a1ec-ed72-4a79-8961-25635db0192b&DisplayLang=ko
단, Visual Studio Express 버전은 윈도우 모바일 응용 프로그램 개발을 지원하지 않습니다.
3. Visual Studio 2008 서비스 팩1을 설치해 주시기 바랍니다. .NET 프레임워크 3.5 및 WIndows Mobile 개발 컴포넌트를 업데이트 할 수 있습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=fbee1648-7106-44a7-9649-6d9f6d58056e&DisplayLang=ko
4. 이제 T옴니아폰에 필요할 Windows Mobile 6 Professional Edition SDK를 설치하면 됩니다. 이 SDK는 무료이고 T옴니아폰 외에 HTC 터치듀얼이라든가 SPH-4950 폰, 미라지 등과 같은 Windows Mobile 6 운영체제에서도 그대로 사용할 수 있습니다. 아래의 URL에서 다운로드 한 다음 설치해 주시기 바랍니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=06111a3a-a651-4745-88ef-3d48091a390b&DisplayLang=en
5. 원래 Windows Mobile 6 SDK 에는 영문(USA) 밖에 없다. 따라서 한글용 사용하기 위해서는 Windows Mobile 6 Emulator Localization Images 를 다운로드 받아야 합니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=38c46aa8-1dd7-426f-a913-4f370a65a582&DisplayLang=en
6. 마지막으로 Windows Mobile 6.1.4 Emulator Images (USA) 를 설치해 주면 되는데 여기에는 T옴니아 폰이나 HTC 터치 다이아몬드 HD 디스플레이 처럼 DPI 가 480 * 800 이미지가 포함 되어 있으므로 이를 다운로드 받아서 사용하는 것이 좋습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=1a7a6b52-f89e-4354-84ce-5d19c204498a&DisplayLang=en
그 외 설치사항에 대해 궁금하신 분들은 댓글 남겨 주세요! 다음 번에 애플리케이션 개발 방법 종류에 대해서 적도록 하겠습니다.
-----
Cheers,
June
처음으로 T옴니아폰 응용프로그램을 개발하려면?
T옴니아 윈도우 모바일 소프트웨어 경진대회 개발자 워크삽이 개최되었는 지도 2주가 넘었습니다. 이미 mysmart 웹 사이트 Q&A에 공모전에 도전하시는 분들이 수많은 기술적인 질문들을 올리고 계십니다. 이에 계속해서 답변을 제가 하고 있는데 오늘은 초보자분들을 위해 처음으로 T옴니아폰 응용 프로그램을 개발하려면 어떻게 해야 하는가에 대해 블로깅을 하도록 하겠습니다.
아무래도 개발을 처음 하시는 분들에게 나설지 모르겠지만 T옴니아폰은 윈도우 모바일 6.1 플랫폼으로 개발되어 있기 때문에 그것에 관한 개발도구와 SDK를 다운로드를 받아야 합니다.
개발 환경 꾸미기를 한다면 다음과 같은 절차를 진행해 주시기를 권장합니다.
1. Windows XP Service Pack 2 또는 Windows Vista 운영체제 설치
1) Windows XP 서비스팩2 운영체제에서는 T옴니아폰과 PC와의 연결을 하기 위해서는 액티브 싱크(ActiveSync)가 필요합니다. 최신 버전은 4.5 입니다.
http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=9e641c34-6f7f-404d-a04b-dc09f8141141
2) Windows Vista 운영체제에서는 Windows Mobile Device Center 가 6.1 로 업데이트가 필요합니다.
http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=46f72df1-e46a-4a5f-a791-09f07aaa1914
2. 개발 도구로는 한글이든 영문이든 Visual Studio 2008 Professional Edition 이상이 있어야 합니다. 워크삽 때에는 Visual Studio Team System 평가판을 제공해 드렸습니다. 받지 못했거나 필요하신 분들은 아래의 URL에서 다운로드 받으실 수 있습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=83c3a1ec-ed72-4a79-8961-25635db0192b&DisplayLang=ko
단, Visual Studio Express 버전은 윈도우 모바일 응용 프로그램 개발을 지원하지 않습니다.
3. Visual Studio 2008 서비스 팩1을 설치해 주시기 바랍니다. .NET 프레임워크 3.5 및 WIndows Mobile 개발 컴포넌트를 업데이트 할 수 있습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=fbee1648-7106-44a7-9649-6d9f6d58056e&DisplayLang=ko
4. 이제 T옴니아폰에 필요할 Windows Mobile 6 Professional Edition SDK를 설치하면 됩니다. 이 SDK는 무료이고 T옴니아폰 외에 HTC 터치듀얼이라든가 SPH-4950 폰, 미라지 등과 같은 Windows Mobile 6 운영체제에서도 그대로 사용할 수 있습니다. 아래의 URL에서 다운로드 한 다음 설치해 주시기 바랍니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=06111a3a-a651-4745-88ef-3d48091a390b&DisplayLang=en
5. 원래 Windows Mobile 6 SDK 에는 영문(USA) 밖에 없다. 따라서 한글용 사용하기 위해서는 Windows Mobile 6 Emulator Localization Images 를 다운로드 받아야 합니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=38c46aa8-1dd7-426f-a913-4f370a65a582&DisplayLang=en
6. 마지막으로 Windows Mobile 6.1.4 Emulator Images (USA) 를 설치해 주면 되는데 여기에는 T옴니아 폰이나 HTC 터치 다이아몬드 HD 디스플레이 처럼 DPI 가 480 * 800 이미지가 포함 되어 있으므로 이를 다운로드 받아서 사용하는 것이 좋습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=1a7a6b52-f89e-4354-84ce-5d19c204498a&DisplayLang=en
그 외 설치사항에 대해 궁금하신 분들은 댓글 남겨 주세요! 다음 번에 애플리케이션 개발 방법 종류에 대해서 적도록 하겠습니다.
-----
Cheers,
June
금요일, 1월 30, 2009
VideoNaena (비디오내놔)
VideoNaena (비디오내놔)
다음/싸이월드/YouTube/판도라/네이버/LiveLeak 등 UCC 영상 간편하게 보고 Video file(flv/mp4) 다운로드
http://code.google.com/p/videonaena/downloads/list

feedback, 부탁 드리구요, 다른곳에 마음껏 배포 하셔도 됩니다. ^^
[간단 사용법]
1. DAUM, CYWORLD, YOUTUBE, PANDORATV, NAVER, LIVELEAK, MP3Search 등을 선택 합니다.
2. "주제 선택" 에서 "테마", "일간 Best" 또는 "주간 Best" 등등을 선택 후 [가져오기] 버튼을 클릭 합니다.
2. 검색에서 검색할 문자열을 입력한 다음 [검색] 버튼을 클릭 또는 엔터키를 누릅니다.
3. 해당 목록을 선택해서 마우스 오른쪽 버튼을 클릭해서 "FLV 재생" 을 선택하시면 play 됩니다. 또는 더블클릭을 해서 play 합니다.
( FLV/MP4 URL 은 제일 아래쪽에 Video URL(FLV/MP4) [........] 에 표시 됩니다. )
( 또한 지원에 따라서 flv, mp4, mp4 720p 를 선택해서 다운로드가 가능합니다.)
4. Video 파일을 다운로드 하려면 [IE 로 다운로드] 를 클릭해서 다운로드 합니다.
*** MP3 검색의 경우 검색 하는데에 시간이 다소 걸릴 수도 있습니다.
*** Daum 에서 Pino(Pcube) 를 추가 해서 용량이 큰 영상을 보기가 불편합니다. 그래서 FLV/MP4 를 Streaming 할수 있는 GOM player 와 KMPlayer 연결을 추가했습니다.
*** 판도라TV 의 경우 FLV 파일이 IE 에서는 다운로드 되지 않습니다.
*** 다른 브라우저 (e.g., FireFox, ...) 에서 다운로드 하시기를 권장합니다.
*** 업데이트 ***
[v1.0.9.0-bin - Mar. 30, 2009]
- [*ADD*] Daum '버퍼링중입니다.' 라고 나오며 재생 못하는 문제 수정
- [*ADD*] MP3 Search: 영어 검색만 지원 (주로 외국 앨범)
[v1.0.8.0-bin - Mar. 21, 2009]
- [*ADD*] Daum Pino(Pcube) 대응, FLV/MP4 Streaming 외부 video player 지원 (GOM, KMPlayer Pro)
(VideoNaena_conf.txt 파일을 수정해서 player 를 추가할 수 있음)
- [*ADD*] 업데이트 확인할 때 내역(추가/수정 등등) 출력
[v1.0.7.0-bin - Mar. 06, 2009]
- [*ADD*] Video 전체화면 지원 (flash 에서 전체화면)
- [*ADD*] YouTube HD 720p Video 보기
- [*ADD*] YouTube HD 720p Video download
- 비정상적인 종료 예외처리 수정 (대부분 login 이 필요한 경우. login 은 지원하지 않음)
- DAUM Best 중에 특정 카테고리 내용이 가끔 보이지 않는 이유
Web Browser 에서 보면 전체가 나오는게 아닌 일부 또는 출력이 되지 않음
이유는 아래의 문자열이 xml parsing 을 할 때 exception 이 발생됨.
ERROR [
<_title_>환상적인 R&B Gee계속 듣게 돼<_/title_>
ERROR ]
"...&B Ge..." 이 부분에서 발생함. xml parsing 할 때 tag 로 인식하는 것 같음.
- 현재는 site 별로 HTML, XML 모두 parsing 하고 있음.
- [*ADD*] Naver Video 베스트들 조회, 검색, 영상 다운로드
(Cyworld 다음으로 다시는 parsing 하고 싶지 않은 네이버... -_-;
대략, HTML Entity decoding 및 XML 에서 CDATA 처리, string encoding, url link 등등)
- [*ADD*] LiveLeak Video Recent category 조회, 검색, 영상 다운로드
[v1.0.6.0-bin - Feb. 21, 2009]
- PandoraTV 최신순/실시간랭킹/조회순/답글순/추천순/HD(미정) 조회 추가
- PandoraTV 검색 추가
- PandoraTV FLV download 추가
- YouTube 검색 수정 추가 (YouTube 에서 해당 tag 를 삭제했음)
- VideoNaena(비디오내놔) 업데이트 알림 추가
[v1.0.5.0-bin - Feb. 15, 2009]
- YouTube 베스트들 조회
- YouTube 검색
[v1.0.4.0-bin - Feb. 06, 2009]
- Cyworld 베스트들 조회
- Cyworld 검색 (1 page 만)
- 버전관리 수정
- 리스트 더블클릭 추가
- Video file 다운로드(IE 이용) 추가
[v1.0.0.3-UG-patch1 - Jan. 29, 2009]
- tag 가 변경되었다는 오류, 긴급 수정
[v1.0.0.3 - Jan. 28, 2009]
- 검색 및 결과처리, 등에 대한 예외처리 추가
[v1.0.0.2 - Jan. 27, 2009]
- 검색 기능 및 주제선택이 여러가지 추가 되었습니다.
- 검색 결과는 1 page 만 보여 줍니다. 그 이상의 page 는 차후에 지원이 될 것 같습니다.
NOTE: "다음 TV POT/싸이월드/YouTube/PandoraTV/NAVER Video/LiveLeak" 등 이용 상태가 느릴 경우 프로그램이 오류를 내며 종료될 수 있습니다.
또한 Login 이 필요하다거나 영상이 아닌 이미지만 포함된 경우, 삭제된 경우에도 오류를 내며 종료될 수 있습니다.
그리고, Link 는 항상 깨질 수 있습니다. 다음, 싸이월드, YouTube, PandoraTV, Naver, LiveLeak 등에서 지금 이대로만 유지 하기를 바랄 뿐입니다. ^___^
feedback 많이 주세요,,,
최대한 반영하도록 하겠습니다.
업데이트는 수시로 이루어질 수 있습니다.
-----
Cheers,
June
다음/싸이월드/YouTube/판도라/네이버/LiveLeak 등 UCC 영상 간편하게 보고 Video file(flv/mp4) 다운로드
http://code.google.com/p/videonaena/downloads/list
feedback, 부탁 드리구요, 다른곳에 마음껏 배포 하셔도 됩니다. ^^
[간단 사용법]
1. DAUM, CYWORLD, YOUTUBE, PANDORATV, NAVER, LIVELEAK, MP3Search 등을 선택 합니다.
2. "주제 선택" 에서 "테마", "일간 Best" 또는 "주간 Best" 등등을 선택 후 [가져오기] 버튼을 클릭 합니다.
2. 검색에서 검색할 문자열을 입력한 다음 [검색] 버튼을 클릭 또는 엔터키를 누릅니다.
3. 해당 목록을 선택해서 마우스 오른쪽 버튼을 클릭해서 "FLV 재생" 을 선택하시면 play 됩니다. 또는 더블클릭을 해서 play 합니다.
( FLV/MP4 URL 은 제일 아래쪽에 Video URL(FLV/MP4) [........] 에 표시 됩니다. )
( 또한 지원에 따라서 flv, mp4, mp4 720p 를 선택해서 다운로드가 가능합니다.)
4. Video 파일을 다운로드 하려면 [IE 로 다운로드] 를 클릭해서 다운로드 합니다.
*** MP3 검색의 경우 검색 하는데에 시간이 다소 걸릴 수도 있습니다.
*** Daum 에서 Pino(Pcube) 를 추가 해서 용량이 큰 영상을 보기가 불편합니다. 그래서 FLV/MP4 를 Streaming 할수 있는 GOM player 와 KMPlayer 연결을 추가했습니다.
*** 판도라TV 의 경우 FLV 파일이 IE 에서는 다운로드 되지 않습니다.
*** 다른 브라우저 (e.g., FireFox, ...) 에서 다운로드 하시기를 권장합니다.
*** 업데이트 ***
[v1.0.9.0-bin - Mar. 30, 2009]
- [*ADD*] Daum '버퍼링중입니다.' 라고 나오며 재생 못하는 문제 수정
- [*ADD*] MP3 Search: 영어 검색만 지원 (주로 외국 앨범)
[v1.0.8.0-bin - Mar. 21, 2009]
- [*ADD*] Daum Pino(Pcube) 대응, FLV/MP4 Streaming 외부 video player 지원 (GOM, KMPlayer Pro)
(VideoNaena_conf.txt 파일을 수정해서 player 를 추가할 수 있음)
- [*ADD*] 업데이트 확인할 때 내역(추가/수정 등등) 출력
[v1.0.7.0-bin - Mar. 06, 2009]
- [*ADD*] Video 전체화면 지원 (flash 에서 전체화면)
- [*ADD*] YouTube HD 720p Video 보기
- [*ADD*] YouTube HD 720p Video download
- 비정상적인 종료 예외처리 수정 (대부분 login 이 필요한 경우. login 은 지원하지 않음)
- DAUM Best 중에 특정 카테고리 내용이 가끔 보이지 않는 이유
Web Browser 에서 보면 전체가 나오는게 아닌 일부 또는 출력이 되지 않음
이유는 아래의 문자열이 xml parsing 을 할 때 exception 이 발생됨.
ERROR [
<_title_>환상적인 R&B Gee계속 듣게 돼<_/title_>
ERROR ]
"...&B Ge..." 이 부분에서 발생함. xml parsing 할 때 tag 로 인식하는 것 같음.
- 현재는 site 별로 HTML, XML 모두 parsing 하고 있음.
- [*ADD*] Naver Video 베스트들 조회, 검색, 영상 다운로드
(Cyworld 다음으로 다시는 parsing 하고 싶지 않은 네이버... -_-;
대략, HTML Entity decoding 및 XML 에서 CDATA 처리, string encoding, url link 등등)
- [*ADD*] LiveLeak Video Recent category 조회, 검색, 영상 다운로드
[v1.0.6.0-bin - Feb. 21, 2009]
- PandoraTV 최신순/실시간랭킹/조회순/답글순/추천순/HD(미정) 조회 추가
- PandoraTV 검색 추가
- PandoraTV FLV download 추가
- YouTube 검색 수정 추가 (YouTube 에서 해당 tag 를 삭제했음)
- VideoNaena(비디오내놔) 업데이트 알림 추가
[v1.0.5.0-bin - Feb. 15, 2009]
- YouTube 베스트들 조회
- YouTube 검색
[v1.0.4.0-bin - Feb. 06, 2009]
- Cyworld 베스트들 조회
- Cyworld 검색 (1 page 만)
- 버전관리 수정
- 리스트 더블클릭 추가
- Video file 다운로드(IE 이용) 추가
[v1.0.0.3-UG-patch1 - Jan. 29, 2009]
- tag 가 변경되었다는 오류, 긴급 수정
[v1.0.0.3 - Jan. 28, 2009]
- 검색 및 결과처리, 등에 대한 예외처리 추가
[v1.0.0.2 - Jan. 27, 2009]
- 검색 기능 및 주제선택이 여러가지 추가 되었습니다.
- 검색 결과는 1 page 만 보여 줍니다. 그 이상의 page 는 차후에 지원이 될 것 같습니다.
NOTE: "다음 TV POT/싸이월드/YouTube/PandoraTV/NAVER Video/LiveLeak" 등 이용 상태가 느릴 경우 프로그램이 오류를 내며 종료될 수 있습니다.
또한 Login 이 필요하다거나 영상이 아닌 이미지만 포함된 경우, 삭제된 경우에도 오류를 내며 종료될 수 있습니다.
그리고, Link 는 항상 깨질 수 있습니다. 다음, 싸이월드, YouTube, PandoraTV, Naver, LiveLeak 등에서 지금 이대로만 유지 하기를 바랄 뿐입니다. ^___^
feedback 많이 주세요,,,
최대한 반영하도록 하겠습니다.
업데이트는 수시로 이루어질 수 있습니다.
-----
Cheers,
June
토요일, 1월 03, 2009
일기 (January 03, 2009)
어제 일기를 오늘 작성하게 된다. ^___^
어제 1월 2일 금요일 오후 저녁 겸
서점에 가기 위해 이 추운 날씨에 찬바람을 가르며 갔다.
(아이추워~)
서점에서 여러 책을 보면서 "소통하는 문화권력 TW세대" 라는 책을 잠시 읽어 보았다.
"조/중/동" 출신 기자라는 사실에 책을 덮어 버리려다 조금씩 읽어 보니 제법 흥미로웠다.
그래서 조금씩 읽다보니 10 페이지, 100 페이지, 흑흑... 아.. 목아파...
그렇게 200 페이지 넘게 끝까지 읽어 버렸다.
서점에서 책 한 권을 모두 읽어 버린 경우는 처음이었다.
덕분에 자다가 새벽에 잠시 깨었는데... 목이 아프더라... ㅠ.ㅠ
생각해 보니 두 시간 조금 서서 읽었던것 같다.
아무튼 올 해에는 책을 많이 읽어야겠다. 단, 서점을 많이 이용을 해야겠다. ㅎㅎ
올해에는 목이 조금 힘들어하지 않을까... ^^;
책 내용은, 직접 읽어 보시라~ ㅎㅎ
간단한 정보라면, OW(One Way) 의 상대방의 일방적인 정보를 그대로 받아들여야
했던 세대에서 이제는 나도 하나의 권력자인 TW (Two Way) 세대에 대한 설명을 여러
분야에 걸쳐서 설명하고 있다.
-----
Cheers,
June
어제 1월 2일 금요일 오후 저녁 겸
서점에 가기 위해 이 추운 날씨에 찬바람을 가르며 갔다.
(아이추워~)
서점에서 여러 책을 보면서 "소통하는 문화권력 TW세대" 라는 책을 잠시 읽어 보았다.
"조/중/동" 출신 기자라는 사실에 책을 덮어 버리려다 조금씩 읽어 보니 제법 흥미로웠다.
그래서 조금씩 읽다보니 10 페이지, 100 페이지, 흑흑... 아.. 목아파...
그렇게 200 페이지 넘게 끝까지 읽어 버렸다.
서점에서 책 한 권을 모두 읽어 버린 경우는 처음이었다.
덕분에 자다가 새벽에 잠시 깨었는데... 목이 아프더라... ㅠ.ㅠ
생각해 보니 두 시간 조금 서서 읽었던것 같다.
아무튼 올 해에는 책을 많이 읽어야겠다. 단, 서점을 많이 이용을 해야겠다. ㅎㅎ
올해에는 목이 조금 힘들어하지 않을까... ^^;
책 내용은, 직접 읽어 보시라~ ㅎㅎ
간단한 정보라면, OW(One Way) 의 상대방의 일방적인 정보를 그대로 받아들여야
했던 세대에서 이제는 나도 하나의 권력자인 TW (Two Way) 세대에 대한 설명을 여러
분야에 걸쳐서 설명하고 있다.
-----
Cheers,
June
수요일, 12월 31, 2008
dimagi
Ref. http://www.etnews.co.kr/news/detail.html?&mc=m_014_00002&id=200812300093
:: dimagi
http://www.dimagi.com/content/commcare.html
멋지군...
-----
Cheers,
June
:: dimagi
http://www.dimagi.com/content/commcare.html
멋지군...
-----
Cheers,
June
Tiny Web Server for Upload/Download
Ref. http://kldp.org/node/101423
:: Tiny Web Server for Upload/Download
* Tiny Web Server for upload file
http://stackp.online.fr/?p=28
* tiny Web Server for download file
http://www.home.unix-ag.org/simon/woof.html
-----
Cheers,
June
:: Tiny Web Server for Upload/Download
* Tiny Web Server for upload file
http://stackp.online.fr/?p=28
* tiny Web Server for download file
http://www.home.unix-ag.org/simon/woof.html
-----
Cheers,
June
토요일, 11월 22, 2008
NHN DeView 2008
오늘 네이버의 NHN DeView 2008 개발자 Conference 참가를 위해 오전에 양재 AT Center 로 이동을 했다. 몇 번 가보았던 곳이고, 예비군 훈련때문에 AT Center 앞을 여러번 지나가 보아서 찾아가는데에는 어렵지 않았다.
http://blog.naver.com/deview_con/
점심 도시락... 정말 최고였다. ^^ 또 먹고 싶다.
Track B, Session 1
사람들 정말 많이 왔더라...
하지만, 아쉬운 부분은 Developer Center (Track C) 의 경우엔 자리가 많이 좁았던 것 같다. 해당 session 에 참여 하려고 했지만, 많은 사람들이 몰리는 바람에 그냥 나왔다.
그래도 좋은 내용 많이 듣고, 사전 등록을 해서 선물도 받고, 맛있는 점심까지... 너무 좋았다. 앞으로 이런 행사가 많이, 자주 열렸으면 하는 바람이다.
하나더,..
damn. 개발자 conference 에도 다들 짝을(커플) 지어서 왔더라...
남+여... -_-; 엉엉엉... ㅠ.ㅠ
이상...
Cheers,
June
http://blog.naver.com/deview_con/
점심 도시락... 정말 최고였다. ^^ 또 먹고 싶다.
보낸 사람 네이버 NHN DeView 2008 |
Track B, Session 1
보낸 사람 네이버 NHN DeView 2008 |
사람들 정말 많이 왔더라...
하지만, 아쉬운 부분은 Developer Center (Track C) 의 경우엔 자리가 많이 좁았던 것 같다. 해당 session 에 참여 하려고 했지만, 많은 사람들이 몰리는 바람에 그냥 나왔다.
그래도 좋은 내용 많이 듣고, 사전 등록을 해서 선물도 받고, 맛있는 점심까지... 너무 좋았다. 앞으로 이런 행사가 많이, 자주 열렸으면 하는 바람이다.
하나더,..
damn. 개발자 conference 에도 다들 짝을(커플) 지어서 왔더라...
남+여... -_-; 엉엉엉... ㅠ.ㅠ
이상...
Cheers,
June
일요일, 10월 05, 2008
일기 (2008.10.05) #2
아래 이후 스토리...
잘 안되었다. 노력하지 않은 내가 밉다...
차인건가?...
하지만... 마음은... 경인이가 좋은 사람 만났으면 좋겠다... ^^
경인이가 내게 해주었던 말처럼...
-----
음...
2008년 10월 04일은 내게 의미있는 날이었다.
정확히 광주에서 10월 04일 (1004?) 오후 4시. 000 카페.
너무 예뻤다. 내가 부담 스러울 정도로...
이렇게 착한 눈망울과 미소를 가진 여자를 본적이 없다.? 정말? 헤헤...
만나본 적은 정말 없다. -_-+
경인이가 많은 부담을 느꼈던 것 같아서 걱정이었다.
처음엔 어색했지만 차츰, 나에 놀라운 말솜씨에(?) -_-;;; 어색함이 조금은 없어진 것 같았다. 서로 얘기를 들어 주면서 어떤 생각을 가지고, 어떻게 생활을 하며 마음은 어떤지 알수가 있었다.
그야말로, 나무랄대가 없는 성숙한 여인이다.
얘기할 때마다 웃어주는 그녀 모습을 보고 있으면... 내가 나에게 최면을 걸 듯, 빠져든다.
콩깍지라기 보단, 그녀의 매력이 아닌가 싶다.
음... 그녀는 대학병원 간호사 이다. 길게 늘어트린 머리결을 병원에 있을 때엔 어떻게 하는지 무척이나 궁금하다. 나도 의과 공부를 한적이 있어 웬지 통하는 channel 이 있는것 같아 다행이다는 생각이 든다.
3교대라서 힘이 들겠지만, 더욱 안타까운것은 끼니를 잘 챙겨 먹지 못한다는 것이다. 만난지 하루 밖에 되지 않아서 애인은 아니지만 참 속상하다. 아침 거르지 않고 잘 챙겨 먹어야 할텐데...
결혼을 했더라면 솜씨는 없지만 내가 매일 챙겨 주었을 것 같다.
그렇다... 인연은 이렇게 이루어 지는 것일까? 3교대 근무라서 토/일요일 휴일을 갖기란 무척 어렵다. 하지만 약속이라도 한 듯 토/일요일 휴일이 생겼다.
게다가 토요일은 10월 04일... 1004? 웬지 너무 억지로 끼워 맞추려는 것 같네...ㅎㅎ
음... anyway, 만남을 갖고 나서 이여자 만큼은 내가 책임질 수 있겠다라고 생각이 얼핏 들었다. 긴가민가했지만 생각을 계속하다 보니 내 마음을 알수 있었다.
요즘 MBC 드라마 "춘자네 경사났네" 에서 고두심 씨가 자주 하는 말을 빌리자면...
한마디로 뻑이간다 이다.
저녁을 함께 할 때 와인을 주문하는 거였는데, 타이밍을 놓쳐 버렸다.
나름대로 과일쥬스도 괜찮았지만 분위기상 와인이 더 좋을 듯 했다.
그랬더라면 더욱 친해졌을 수도 있었겠다는 생각이 든다.
아직 앞날은 알 수 없으나 부담스럽지 않은 선에서 지속적인 관심과 사랑을 그녀에게 주었으면 하는 바람이다. 냉정하게 얘기를 하자면 자꾸 정이 들게 하는 것이다. -_-;
(내가 무슨 얘기를 하는 건지... 엉뚱하군...)
경인이는 내일 꽤 이른 시간에 출근할 텐데 지금 잠자기 전인지 모르겠다.
아직은 많이 부담스러운지 나에게 마음을 많이 열어 주지는 않는 것 같다.
병원에서 일하는 것이라서 전화를 거는건 자꾸 마음에 걸린다.
그래서 전화는 되도록이면 하지 않고 문자를 자주 보낼 생각이다.
지금 자고 있을까? 나도 오늘 너무 피곤해서... 경인이에게 문자보내고 잠을 청해야겠다.
Regards,
June
잘 안되었다. 노력하지 않은 내가 밉다...
차인건가?...
하지만... 마음은... 경인이가 좋은 사람 만났으면 좋겠다... ^^
경인이가 내게 해주었던 말처럼...
-----
음...
2008년 10월 04일은 내게 의미있는 날이었다.
정확히 광주에서 10월 04일 (1004?) 오후 4시. 000 카페.
너무 예뻤다. 내가 부담 스러울 정도로...
이렇게 착한 눈망울과 미소를 가진 여자를 본적이 없다.? 정말? 헤헤...
만나본 적은 정말 없다. -_-+
경인이가 많은 부담을 느꼈던 것 같아서 걱정이었다.
처음엔 어색했지만 차츰, 나에 놀라운 말솜씨에(?) -_-;;; 어색함이 조금은 없어진 것 같았다. 서로 얘기를 들어 주면서 어떤 생각을 가지고, 어떻게 생활을 하며 마음은 어떤지 알수가 있었다.
그야말로, 나무랄대가 없는 성숙한 여인이다.
얘기할 때마다 웃어주는 그녀 모습을 보고 있으면... 내가 나에게 최면을 걸 듯, 빠져든다.
콩깍지라기 보단, 그녀의 매력이 아닌가 싶다.
음... 그녀는 대학병원 간호사 이다. 길게 늘어트린 머리결을 병원에 있을 때엔 어떻게 하는지 무척이나 궁금하다. 나도 의과 공부를 한적이 있어 웬지 통하는 channel 이 있는것 같아 다행이다는 생각이 든다.
3교대라서 힘이 들겠지만, 더욱 안타까운것은 끼니를 잘 챙겨 먹지 못한다는 것이다. 만난지 하루 밖에 되지 않아서 애인은 아니지만 참 속상하다. 아침 거르지 않고 잘 챙겨 먹어야 할텐데...
결혼을 했더라면 솜씨는 없지만 내가 매일 챙겨 주었을 것 같다.
그렇다... 인연은 이렇게 이루어 지는 것일까? 3교대 근무라서 토/일요일 휴일을 갖기란 무척 어렵다. 하지만 약속이라도 한 듯 토/일요일 휴일이 생겼다.
게다가 토요일은 10월 04일... 1004? 웬지 너무 억지로 끼워 맞추려는 것 같네...ㅎㅎ
음... anyway, 만남을 갖고 나서 이여자 만큼은 내가 책임질 수 있겠다라고 생각이 얼핏 들었다. 긴가민가했지만 생각을 계속하다 보니 내 마음을 알수 있었다.
요즘 MBC 드라마 "춘자네 경사났네" 에서 고두심 씨가 자주 하는 말을 빌리자면...
한마디로 뻑이간다 이다.
저녁을 함께 할 때 와인을 주문하는 거였는데, 타이밍을 놓쳐 버렸다.
나름대로 과일쥬스도 괜찮았지만 분위기상 와인이 더 좋을 듯 했다.
그랬더라면 더욱 친해졌을 수도 있었겠다는 생각이 든다.
아직 앞날은 알 수 없으나 부담스럽지 않은 선에서 지속적인 관심과 사랑을 그녀에게 주었으면 하는 바람이다. 냉정하게 얘기를 하자면 자꾸 정이 들게 하는 것이다. -_-;
(내가 무슨 얘기를 하는 건지... 엉뚱하군...)
경인이는 내일 꽤 이른 시간에 출근할 텐데 지금 잠자기 전인지 모르겠다.
아직은 많이 부담스러운지 나에게 마음을 많이 열어 주지는 않는 것 같다.
병원에서 일하는 것이라서 전화를 거는건 자꾸 마음에 걸린다.
그래서 전화는 되도록이면 하지 않고 문자를 자주 보낼 생각이다.
지금 자고 있을까? 나도 오늘 너무 피곤해서... 경인이에게 문자보내고 잠을 청해야겠다.
Regards,
June
일기 (2008.10.05)
네가 올 줄 알았어
너무나도 친한 두 친구는
같은 부대원이 되어 전쟁에 출전하게 되었다.
친구 중 한 명이 적탄에 맞고 사선에 쓰러졌다.
소대장의 만류에도 다른 친구는 뛰어나갔다.
그 친구 역시 총탄에 맞아 헐떡이며 돌아왔다.
"자네 친구는 죽었어.
왜 그렇게 무모한 일을 한 거지?"
그 다그침에 친구는 희미한 미소를 지었다.
"저는 큰 얻음이 있었습니다. 그 친구가 제게
말하더군요. '네가 올 줄 알았어'라고요"
- 희망씨의《씨앗을 파는 가게》중에서 -
* 죽음의 고독으로부터 구해 주는 유일한 것은
신뢰할 수 있는 우정입니다. 친구를 잃는다는 것은
단지 우정을 나눴던 사람뿐만 아니라, 우정의 이유,
우정의 방법, 우정과 관련된 모든 것에 대한 상실입니다.
죽는 순간 달려와 '네가 올 줄 알았어'라고 말해
줄 수 있는 친구! 그런 친구가
당신은 있으신가요?
-----
그대와의 인연
"옷깃만 스쳐도 인연은 인연입니다.
윤회나 환생을 믿지 않더라도 소중하지 않은
인연은 없지요. 처음엔 사소하여 잘 알아보지
못할 뿐, 이 사소함이야말로 존재의 자궁 같은 것.
블랙홀이나 미로일 수도 있지만 바로 이곳에서
꽃이 피고 새가 웁니다. 그렇다면 최소한
65억 분의 1의 확률로 만난 그대와의 인연,
그 얼마나 섬뜩할 정도로 소중한지요.
- 이원규의《지리산 편지》중에서 -
* 65억 분의 1의 확률...
정말 섬뜩할 정도의 기적적인 확률입니다.
세상을 살다보면 그때는 우연이라 여겼는데 지나고 보니
우연이 아닌 필연이었음을 알게 되는 경우가 있습니다.
중요한 것은 그 다음입니다. 그 기적같은 인연을
끝까지 소중하게 지켜가는 것입니다.
-----
가장 행복하다고 느낄 때
우리는 우리 자신에게
의미와 즐거움을 주면서 다른 사람들을
도울 수 있는 일을 할 때 가장 행복하다고 느낀다.
어떤 일을 선택할 때는 가장 먼저 그 일을 하면
우리 자신이 행복해질 수 있는지를 생각해보아야 한다.
그 다음에 우리가 하려는 일이 다른 사람들의
행복에 도움이 되는지, 해를 입히지 않는지
생각해 보아야 한다.
- 탈 벤-샤하르의《해피어》중에서 -
* 자기 자신이 먼저 행복해야 합니다.
그러나 혼자서만 행복하면 진짜 행복일 수 없습니다.
다른 사람과 함께 행복해야 진정한 행복입니다.
가장 행복한 순간은, 자기 자신이 행복할 때가
아니라 자기가 사랑하는 사람이
행복할 때입니다.
-----
ㅎㅎ 요즘 email 확인을 못하다가 좋은 글이 많이 와서 포스팅 해본다.
정말 주옥 같은 글들이다...
Cheers,
June
너무나도 친한 두 친구는
같은 부대원이 되어 전쟁에 출전하게 되었다.
친구 중 한 명이 적탄에 맞고 사선에 쓰러졌다.
소대장의 만류에도 다른 친구는 뛰어나갔다.
그 친구 역시 총탄에 맞아 헐떡이며 돌아왔다.
"자네 친구는 죽었어.
왜 그렇게 무모한 일을 한 거지?"
그 다그침에 친구는 희미한 미소를 지었다.
"저는 큰 얻음이 있었습니다. 그 친구가 제게
말하더군요. '네가 올 줄 알았어'라고요"
- 희망씨의《씨앗을 파는 가게》중에서 -
* 죽음의 고독으로부터 구해 주는 유일한 것은
신뢰할 수 있는 우정입니다. 친구를 잃는다는 것은
단지 우정을 나눴던 사람뿐만 아니라, 우정의 이유,
우정의 방법, 우정과 관련된 모든 것에 대한 상실입니다.
죽는 순간 달려와 '네가 올 줄 알았어'라고 말해
줄 수 있는 친구! 그런 친구가
당신은 있으신가요?
-----
그대와의 인연
"옷깃만 스쳐도 인연은 인연입니다.
윤회나 환생을 믿지 않더라도 소중하지 않은
인연은 없지요. 처음엔 사소하여 잘 알아보지
못할 뿐, 이 사소함이야말로 존재의 자궁 같은 것.
블랙홀이나 미로일 수도 있지만 바로 이곳에서
꽃이 피고 새가 웁니다. 그렇다면 최소한
65억 분의 1의 확률로 만난 그대와의 인연,
그 얼마나 섬뜩할 정도로 소중한지요.
- 이원규의《지리산 편지》중에서 -
* 65억 분의 1의 확률...
정말 섬뜩할 정도의 기적적인 확률입니다.
세상을 살다보면 그때는 우연이라 여겼는데 지나고 보니
우연이 아닌 필연이었음을 알게 되는 경우가 있습니다.
중요한 것은 그 다음입니다. 그 기적같은 인연을
끝까지 소중하게 지켜가는 것입니다.
-----
가장 행복하다고 느낄 때
우리는 우리 자신에게
의미와 즐거움을 주면서 다른 사람들을
도울 수 있는 일을 할 때 가장 행복하다고 느낀다.
어떤 일을 선택할 때는 가장 먼저 그 일을 하면
우리 자신이 행복해질 수 있는지를 생각해보아야 한다.
그 다음에 우리가 하려는 일이 다른 사람들의
행복에 도움이 되는지, 해를 입히지 않는지
생각해 보아야 한다.
- 탈 벤-샤하르의《해피어》중에서 -
* 자기 자신이 먼저 행복해야 합니다.
그러나 혼자서만 행복하면 진짜 행복일 수 없습니다.
다른 사람과 함께 행복해야 진정한 행복입니다.
가장 행복한 순간은, 자기 자신이 행복할 때가
아니라 자기가 사랑하는 사람이
행복할 때입니다.
-----
ㅎㅎ 요즘 email 확인을 못하다가 좋은 글이 많이 와서 포스팅 해본다.
정말 주옥 같은 글들이다...
Cheers,
June
토요일, 9월 20, 2008
Open Project (updated on February.02.2010)
앞으로 공개하는 프로젝트는 여기에 공개를 하겠음...
:: GEDK is a library of functions to support Irrlicht 3D Engine.
http://code.google.com/p/gedk/
Features(TODO list):
- Camera (First/Third persion)
- Model (MD2, HL1, CS, B3D, MS3D)
- Network (RakNet?)
- Sound (OpenAL, Audiere)
- Physics (Bullet Physics)
- Map
- Effect (Particle system, HLSL, GLSL)
:: cvTest01 is a test code of OpenCV and MCI library to support Computer Vision and Multimedia.
http://code.google.com/p/cvtest/
Features(TODO list):
- n/a
:: ATP1 is an image processing application to support write a code with Gtk+ 2.x and CxImage in GNU/Linux.
http://code.google.com/p/atp1/
Features(TODO list):
- Gtk+ 2.x Image Processing
- CxImage Image Processing
- Effect:
--- Image scaling and rotation
--- Splendid, Brightness, Gray scale
--- Mosaic
--- Draw Text
--- Composite with gif frame
--- ...
:: ATP2 is an image processing iPhone application to support write a code with Objective-C in Mac OS X.
http://code.google.com/p/atp2/
Features(TODO list):
- Resize, Rotation
- how to use Slider, Button, Message Box, Touch on screen
:: VideoNaena is an easy to watch the movie and get FLV/MP4 file from some UCC site.
http://code.google.com/p/videonaena/
NOTE: Distribute binary file only now.
Supports Watch the video and get FLV/MP4 file:
- DAUM: http://www.daum.net/
- Cyworld: http://www.cyworld.com/
- YouTube: http://www.youtube.com/
- PandoraTV: http://www.pandora.tv/
- Naver Video: http://www.naver.com/
- LiveLeak: http://www.liveleak.com/
:: ATPlab is my tentative work laboratory.
http://code.google.com/p/atplab/
There's no fixed features, no fixed subject.
If i have an interests something, its my tentative subject.
Features:
- 1. Comparison: Compare source with destination
- 2. z4: Split line
- 3. actx_pack: ActiveX Archiving MS-DOS Batch Script
-----
Cheers,
June
:: GEDK is a library of functions to support Irrlicht 3D Engine.
http://code.google.com/p/gedk/
Features(TODO list):
- Camera (First/Third persion)
- Model (MD2, HL1, CS, B3D, MS3D)
- Network (RakNet?)
- Sound (OpenAL, Audiere)
- Physics (Bullet Physics)
- Map
- Effect (Particle system, HLSL, GLSL)
:: cvTest01 is a test code of OpenCV and MCI library to support Computer Vision and Multimedia.
http://code.google.com/p/cvtest/
Features(TODO list):
- n/a
:: ATP1 is an image processing application to support write a code with Gtk+ 2.x and CxImage in GNU/Linux.
http://code.google.com/p/atp1/
Features(TODO list):
- Gtk+ 2.x Image Processing
- CxImage Image Processing
- Effect:
--- Image scaling and rotation
--- Splendid, Brightness, Gray scale
--- Mosaic
--- Draw Text
--- Composite with gif frame
--- ...
:: ATP2 is an image processing iPhone application to support write a code with Objective-C in Mac OS X.
http://code.google.com/p/atp2/
Features(TODO list):
- Resize, Rotation
- how to use Slider, Button, Message Box, Touch on screen
:: VideoNaena is an easy to watch the movie and get FLV/MP4 file from some UCC site.
http://code.google.com/p/videonaena/
NOTE: Distribute binary file only now.
Supports Watch the video and get FLV/MP4 file:
- DAUM: http://www.daum.net/
- Cyworld: http://www.cyworld.com/
- YouTube: http://www.youtube.com/
- PandoraTV: http://www.pandora.tv/
- Naver Video: http://www.naver.com/
- LiveLeak: http://www.liveleak.com/
:: ATPlab is my tentative work laboratory.
http://code.google.com/p/atplab/
There's no fixed features, no fixed subject.
If i have an interests something, its my tentative subject.
Features:
- 1. Comparison: Compare source with destination
- 2. z4: Split line
- 3. actx_pack: ActiveX Archiving MS-DOS Batch Script
-----
Cheers,
June
금요일, 9월 19, 2008
How to inatall iPhone SDK to Mac OS X 10.5.3 below (10.5.2, or...)?
How to inatall iPhone SDK to Mac OS X 10.5.3 below (10.5.2, or...)?
Source: http://www.insanelymac.com/lofiversion/index.php/t96394.html
Can I use iPhone SDK on a PC with hacked Tiger (10.5.2)?
I made a fair bit of progress getting the FINAL SDK to run on a 10.5.2 Leopard box. Here's what I did:
1) Install the Iphone_SDK_Final DMG file. It won't let you install the Iphone parts; no worries.
2) Open the Packages folder on the DMG and install all the packages labeled IPHONE and "DeveloperDiskImage".
3) These packages will install into /Platforms, but we need them in /Developer/Platforms. Use Finder, Terminal, whatever, to move these files over.
4) Voila -- You should at least have a working Iphone Simulator. You'll be able to write code and run it on your PC.
-----
아나... 이렇게 쉬울수가... -_-;
설치는 개별적으로 했었는데, XCode 에서 안보이더라구...
그래서 아... 10.5.2 까지는 안되는 구나... 라고 생각하며...
10.5.3 으로 patch 하려고 했으나 잘못했다간,,, 다시 하루 이틀을 날새며 Mac OS X 10.5.2 나 10.5.3 을 설치를 해야 하는 부담감에... 그냥 잠시 접어 두었다...
그런데,,, 오늘... 씨~ directory 만 변경해서 move 하면 되는 거였잖아...
헤헤... ^___^
어찌되었건, 내 Desktop PC 에서 iPhone Emulator 를 띄워 테스트를 해보았다.
요거 재미있네? ㅎㅎ
Cheers,
June
Source: http://www.insanelymac.com/lofiversion/index.php/t96394.html
Can I use iPhone SDK on a PC with hacked Tiger (10.5.2)?
I made a fair bit of progress getting the FINAL SDK to run on a 10.5.2 Leopard box. Here's what I did:
1) Install the Iphone_SDK_Final DMG file. It won't let you install the Iphone parts; no worries.
2) Open the Packages folder on the DMG and install all the packages labeled IPHONE and "DeveloperDiskImage".
3) These packages will install into /Platforms, but we need them in /Developer/Platforms. Use Finder, Terminal, whatever, to move these files over.
4) Voila -- You should at least have a working Iphone Simulator. You'll be able to write code and run it on your PC.
-----
아나... 이렇게 쉬울수가... -_-;
설치는 개별적으로 했었는데, XCode 에서 안보이더라구...
그래서 아... 10.5.2 까지는 안되는 구나... 라고 생각하며...
10.5.3 으로 patch 하려고 했으나 잘못했다간,,, 다시 하루 이틀을 날새며 Mac OS X 10.5.2 나 10.5.3 을 설치를 해야 하는 부담감에... 그냥 잠시 접어 두었다...
그런데,,, 오늘... 씨~ directory 만 변경해서 move 하면 되는 거였잖아...
헤헤... ^___^
어찌되었건, 내 Desktop PC 에서 iPhone Emulator 를 띄워 테스트를 해보았다.
요거 재미있네? ㅎㅎ
Cheers,
June
피드 구독하기:
글 (Atom)