Co-routine
1
Name:
Anonymous
2012-01-23 17:40
Is this iterator implementation well-defined?
#include <stdio.h>
#include <stdlib.h>
typedef struct it {
int *start;
int len;
struct it *next;
} iterator_t;
static iterator_t *head = NULL;
static iterator_t *iterator(int array[], int length)
{
static iterator_t *ptr = NULL;
if (head == NULL) {
head = malloc(sizeof(iterator_t));
ptr = head;
} else {
ptr->next = malloc(sizeof(iterator_t));
ptr = ptr->next;
}
ptr->start = array;
ptr->len = length;
ptr->next = NULL;
return ptr;
}
static int iterate(iterator_t *it)
{
static iterator_t *current = NULL;
static int state = 0, *ptr;
if (it != NULL) {
/* Initialize */
current = it;
ptr = it->start;
state = 0;
} else {
/* Co-routine */
switch (state) {
case 0: while (ptr != (current->start + current->len)) {
state = 1;
return *ptr;
case 1: ++ptr;
}
}
}
return -1;
}
int main(void)
{
iterator_t *it, *ptr;
int n, numbers[] = { 4, 5, 6, 0, 1, 9, 0, 0, 8 };
it = iterator(numbers, sizeof(numbers)/sizeof(int));
iterate(it);
while ((n = iterate(NULL)) != -1) {
printf("%d\n", n);
}
it = head;
while (it) {
ptr = it->next;
free(it);
it = ptr;
}
return 0;
}
2
Name:
Anonymous
2012-01-23 18:00
>>1
Why did you make it so it only works with one iterator at a time?
3
Name:
Anonymous
2012-01-23 18:06
>>2
I wanted to try out a co-routine implementation. IDK how I would do that and in addition allow multiple iterators
4
Name:
Anonymous
2012-01-23 18:08
>>3
You could use an extra parameter instead of a global variable. Compare
strtok and
strtok_r.
5
Name:
Anonymous
2012-01-23 18:13
>>4
The global variable doesn't really matter for the implementation of the iterator itself.
Two sec, posing an updated version
6
Name:
Anonymous
2012-01-23 18:17
>>4-5
#include <stdio.h>
#include <stdlib.h>
typedef struct it {
int *start;
int len;
int (*next)();
} iterator_t;
static int iterator(iterator_t *it)
{
static iterator_t *current;
static int state = 0, *ptr;
if (it != NULL) {
/* Initialize */
current = it;
ptr = it->start;
state = 0;
} else {
/* Co-routine */
switch (state) {
case 0: while (ptr != (current->start + current->len)) {
state = 1;
return *ptr;
case 1: ++ptr;
}
state = 0;
}
}
return -1;
}
static int f(void)
{
return iterator(NULL);
}
static iterator_t create(int array[], int length)
{
iterator_t it = {
array,
length,
&f
};
return it;
}
int main(void)
{
iterator_t it0, it1;
int k, n, m, numbers[] = { 4, 5, 6, 0, 1, 9, 0, 0, 8 };
m = sizeof(numbers) / sizeof(int);
it0 = create(numbers, 3);
it1 = create(numbers, m);
// Set iterator
iterator(&it0);
printf("%d\n", it0.next());
printf("%d\n", it0.next());
for (iterator(&it1), n = 0, k = it1.next(); n < m; ++n, k = it1.next())
printf("%d\n", k);
return 0;
}
7
Name:
Anonymous
2012-01-23 18:26
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫
ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫
ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫ーナマ猫
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
猫マナー猫マナー猫マナー猫マナー猫マナー猫マナー
8
Name:
YOUR_SUPER_NIGGER
2012-01-23 18:34
I think it's better do something like...
while(it != NULL) {
next = it->next; /* Not ptr = it->next; */
free(it);
it = next; /* Not it= ptr; */
}
That way, you can like, keep the possible memory leaks on a short rope.
9
Name:
Anonymous
2012-01-23 18:40
>>8
... but that's exactly the same, but using a different variable name.
10
Name:
Anonymous
2012-01-23 18:43
>>8
Calling the variable next instead of ptr does not make any difference
11
Name:
Anonymous
2012-01-23 18:44
>>6
Someone isn't a mental midget....
12
Name:
Anonymous
2012-01-23 18:44
13
Name:
YOUR_SUPER_NIGGER
2012-01-23 18:45
>>10
IT COULD ADD EXTRA OVERHEAD IN SOME EXTREME CASSES
14
Name:
Anonymous
2012-01-23 18:46
>>12
No he hasn't. Now shut your hole and learn something from those of us who can actually code shit beyond 'hello world'.
15
Name:
Anonymous
2012-01-23 18:47
>>11
Thanks. Another update, since adding a function pointer as a member to the struct is kind of silly considering virtual functions doesn't exist in C anyway.
#include <stdio.h>
#include <stdlib.h>
typedef struct it {
int *start;
int len;
} iterator_t;
static int iterator(iterator_t *it)
{
static iterator_t *current;
static int state = 0, *ptr;
if (it != NULL) {
/* Initialize */
current = it;
ptr = it->start;
state = 0;
} else {
/* Co-routine */
switch (state) {
case 0: while (ptr != (current->start + current->len)) {
state = 1;
return *ptr;
case 1: ++ptr;
}
state = 0;
}
}
return -1;
}
static int next(void)
{
return iterator(NULL);
}
static iterator_t create(int array[], int length)
{
iterator_t it = {
array,
length,
&next
};
return it;
}
int main(void)
{
iterator_t it0, it1;
int k, n, m, numbers[] = { 4, 5, 6, 0, 1, 9, 0, 0, 8 };
m = sizeof(numbers) / sizeof(int);
it0 = create(numbers, 3);
it1 = create(numbers, m);
// Set iterator
iterator(&it0);
printf("%d\n", next());
printf("%d\n", next());
for (iterator(&it1), n = 0, k = next(); n < m; ++n, k = next())
printf("%d\n", k);
return 0;
}
16
Name:
Anonymous
2012-01-23 18:50
>>15
Oops, slight mistake in
create there. Forgot to remove one line.
17
Name:
Anonymous
2012-01-23 19:00
HURR DURR UNDEFINED HERP DERP sizeof IS IMPLICITLY CASTED TO int HERF DERF NERF
18
Name:
Anonymous
2012-01-23 19:35
u jellin?
#include <stdlib.h>
#include <stdio.h>
struct iterator {
size_t len;
size_t off;
int *objs;
};
struct iterator *iterator_create(void *o,size_t l)
{
struct iterator *it = malloc(sizeof(*it));
if(!it) exit(EXIT_FAILURE);
it->len = l;
it->off = 0;
it->objs = o;
return it;
}
void iterator_destroy(struct iterator *it)
{
free(it);
}
int iterator_next(struct iterator *it)
{
return it->objs[it->off++];
}
int iterator_hasnext(struct iterator *it)
{
return it->off < it->len ? 1 : 0;
}
int main(int argc,char *argv[])
{
int anus[] = { 0,1,2,3,4,5,6,7,8,9,10 };
struct iterator *it = iterator_create(anus,11);
int i;
while(iterator_hasnext(it)){
printf("%d\n",iterator_next(it));
}
return 0;
}
19
Name:
Anonymous
2012-01-23 19:37
>>18 '
>implying that's a coroutine
Nope.
20
Name:
Anonymous
2012-01-23 19:37
>>18
Anyone can do that. That is not a coroutine design.
21
Name:
Anonymous
2012-01-23 19:38
>>18
Memory leak, no call to free in that code.
22
Name:
Anonymous
2012-01-23 19:39
23
Name:
Anonymous
2012-01-23 19:42
>>19
>>20
>>21
>>22
`osss/
`:oooooooo/-` dMMMMMs
-sNMMMMMMMMNMMNmhso+/-` +NMMMMh
`yNMMMMMMMMMMMMMMMMMMMMMNmdo.```````````````````-dMMMh `-:::::-.
-MMdNMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNMMMMNyy+//////:------------------:/symNNMMMMMNNd-
-MMdNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNMNMMMMMMMMMMMMMNh.
-MMMMMMMMMMMMMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh`
-MMMMMMMMMMMMMMMMMMMMMMMMMMMyo/--::+ooyhyyooooooooosyyyyyyyyyymMMMMMMMMMNNNMMMMMMMMMNMMMMMMMMMMMMMMMs
`oNMMMMNMMMMMMMMMMMMMMMMMNs-` `-//+:-.....-:-----::-..`.```.-::::::::::...-//sshmMMMMMMMMMMMMMMMMMMN-
-hNMMMMMMMMMMMMMMMMMdhs-``.://-..:/:///:::..````..::/:::::::::::::::/::::/::+/..:sdNMMMMMMMMMMMMMMN:
`-smMMMMMMMMMMMMMy:```.:/:---//:::/:://///////+/-` `````````....-----.````` ``-ohMMMMMMMMMMdo.
.ohmMMMMMMMMd/``.::-../+:-///:..``` `/o- -///::::....:+/:. `/dMMNMNNh:`
`.:+NMMNh+` ./.`./+--+/-`` .s` ``/: `.-// `-NN:--.`
.hNh/.` ``-+--+/.`` ...:::::::..` o` :+` `o- `NN:`
`-yNh. `` ..`.:ohdmmNMMNNdmdmhy+.`. /: `.......` .` `sNh.`
``/ymms-.``` ``.`.omdhmMMMMMMMN+..:+ymdy:. `---/sydmdddddds/. .yNd+-`
`/dNdhy//////-- `:ooo-`yNmhhmNNNNNNNNyyo/-`-+dNd.` .-.`-ymNMMMMmddddNNNo`++-:----:-:sdmh:`
`/hNhso--..:+++++//-..-/:`:oyy++:--/s+-:+ohmmhs+dNd.` `sdmdNMMNdhyyyo+++++-.```.-...--+/--omm/`
`.sNd++/``.+hmmhhhhhdmhso/-` `.:ommo` `.:ohdy:. `./yNd+-.` `.....-////:/:/NN-
-hNy.s-``-dNy:.` .+:./shhmmhyooooydmdo-` `` /Mh` `:.```:odmhdddms+.s.`o:dM:
yNy``y `-dNs` `/Nd-.```-ohdyssss/-` /Nm:.`` `/mdhohNNs:--.-+yy`+- `odM:
dN:``y sMy` ``.:mNmmdo+-/mmNmssso/.`` `:`.:+++/` `/dmdy:` `:/sssso..dy`` ```.s`:+dM:
dN+` y sMs`+yhdmNd.-+ydmdhosdmNMMMmdhssssssh/dmdyys. .-+NNds-` `` `-Mm-` `:+:`o/mN:
+Nd``o:`:NN::++//mN+` `.:+ymmddyyshhmNMMMMMMNsMh` /sssss/-` `/mNmNy/-.:sydy``oMMm/``::../ohNy`
-dNs-.s.`omd. ``oMN+-`` .sNmhmmmhyhhyydmNm+mmy.sdsoohho```.` `.smmsoh++dNNMNm+-oNNmMh`.:/::/yNh`
`.sNm:-+/-::` :sNMNds/-``+Ny`..:+oydmdmdhs+/+o.`.` :myoymmhsNMMMMMNmho+smmmNyNN:-.` .dNy.
`ommo:-/:/` `oNNdhmmdssNNy-` `` `../+dNNmddyy++:--..``.+sss/-dmmNNNmhsyhmmNN+/NNmM+` `hNy`
`.smNh+-` `:dNs::ohmMMMNy++:.` `mN+--/+sshdmmmddddhyyyyyyyhmddNmNdo:.oNh`yMMM+ `:Nm.
`-smmo. `-hNh:``/NMhmNMMNmds/:+NN. ``-NN:-:+++sNmo++/---+Nd. `/Nd.+MMM+ +My`
`-yNh. `+mN+..mM-.:ohdNNMMMMMds//:.`````.NN``````.dM:````..-dNo:/mMNNMMMM+ +My`
`hNy` `-sNddNy. `-+oomMNNNNMMNdhhhhhMMhhhhhhhNMdhhhhmNNNMNMMMMMMMMMM+ +My`
-dNs` `-yNmo-` `sNs:/ohNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMN/ +My`
`-dNy-` `-sdmh+.` :dN+ ..:/oyNNmNNMMMMMMMMMMMMMMMMMMMMMNmMNdyNd` +My
`+NNo-`` `/ymNy+.`-mN/` -Mm`.-////+mMdyyyyhNNys+dNm:yNdoNN: +My
`:smNs.``:`` `:-.````/yNNddNh.`` -Mm` :Nm-` .hNy``sNm--ddsNN/` +My
`omNy/-/++-`-//+:.```:ohmNmdss/-`````+Nm` `oNh` `yNd.`/NNooshmmy:` `+Ny
`sMMNds:`:+++-`./++-` ```:oohdNNNNdhdNdyooooooNMhoosdNNmhNNNMmhoo/.` /Nm.
`hMm+-odNNh/.`:++:-.-/++/-` ````.::::+osooooossooooo:::::````` --` ` `mN+
-hmMm- `./hmNds-.`./+//-.-:///:.`` -::::::::::::::::. `-o/` s` `+My
-mMNMMdo/-` `:odmNmy+/..:/+//:/:///+::/----------````````` `-::++:` ``-y` +My
/NMmNNmNNNNNh+. ```-/shmNds/.```.-:://///+/:-------/::::::::::/--``` `:++:` +My
`sNMNmNMMMMNNmmNNh+. ```:ohmNds/.`` ``````--:///::::::/:::::::::::::///-`` `hMd:`
-mMdhNMNNNMMMMMMNNmNNy/:. ``:ohmNho/.` `````````````````````` `.yNmmNms:`
:mMh``-omMNmmNMMMMMMNmNNNNmdy+:` ``:ohmmhyyhs+:.```` `./dNs.`:smNm+`
.mMy` `+dMNmNNMMMMMMMNNNmNNNNNdo/-` `.:+sssydmNmdyy+/--`` ``-/ymmy:` `/dMms.
yMm` `-sNMMmNNNMMMMMMMMMNNmNNNNNmhso//////+ooyhhNNNNNmmhys+++++++++++sydmNNNho+////////+yNMm-
:NMNo ./shNNNNNmNMNNNMMMMNMNNNmNNNNNNNNNNNNNmmNNNNNNNNNmmmmmNNNNNNmmNNNNNNNNNNNNNNNNNNNNdMN:
.mMNMN/ `./MMMMmmNNNmNNNNNMMMMMNNMMMMMMMMMMNNNNNmmNNNNmmdNmNNMMMMNNNNNNNMMMMMMMMMMMMMMNNdMN+
hMNdmNNy- `:+yMMMd+yydmNNNNNNNNNNNNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNmmMN/
oMNmMMmNNNy: `yMN:` `..-+yhdmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmMMMMMMMNNNNmNNNNmMm`
/NMdMMMMNmmMNs. `sMN: ```.-:/+ossssssssssssssssssssssssssssssssssyNMNNNNNNNNNNNmdh+-.-NMs
.NMMmmMMMMMNmmMd/` .hMMh- /smMMhsoooo/-.` sMN-
sMNmMNmNMMMMMNmNNdyo+///yMNNNNh/. -yNNy- -omMMd`
`mMy.yNNNmmNNNMMNmmNNNNNMMNmNNmNNmdyo/-. -yNNy. `.-+ydNNNmNMo
`NMs `-ohdmNNNmNNNMMNNmNMmNMMMMNNmNNNNNmho//:.` -dMmdhdmNNNNmNNMdMN+
`NMs `.:ohmNNNmNNNmMmmNMMMMMMMMMNNNmmNNNNmdho/--.` .hMMdNNNNNMMNNNNMNNo`
`NMs ./+ymNNNMMNNNNmNMMMMMMMMMMMNNNNNNNNNNNmdyo+/::--............................:ohdmMMdMMMMNNNNNNh+/NMo
`NMs .-:yMM+:smNNNNNNMMMMMMMMMMMMMMNNNNNNNNNNNNNmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNNNNNmMNmNNmNNmy+-` /NMo
.NMs :NMy` .:+ymNNNNNNNNMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMMmmMNNmdy:` +NNo`
yMMh-` `dMm` .:/sdmNNNMNNmNMNMMNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmMm-.` `:+sNMMs
:mMMNdso+++++++++++sMMo`` .-/ooydmmNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNmNmmMd `:hMNNNNMm`
-mMMdNNNNNNNNNNNNNNMMNmdyo:.` `--:/osyhhhdddddddddddddddddddddddddddddddddddddddmmmNMm-----+ohdNNmNNNmMm`
-mMmNNNMMMMMMMMMMmmMNmmdNNmdhys/-..`` `..hMMNNNNNNNNNNNMMMmNMo
-dmddmNNNNNNNNNNmhmmmmhhmmdmddmmmdhyo/-`` ymdmmmmmmmmNNNNNddmy`
```````````````````````````````````````` ````````````````````
`......` `.:/ .:/` .: .::-`
.+Mm-:hNo `:Md `-NN` `/s/ .y/+Nd`
-Mm``oNs.:+-++ .///o:` `Md-+s/` dN` `/+/s+`.:+::oo-.+s/ `.//o: `` :mh`
-Mm./+: .hMo::.mh` +Ms `Md-.oMh dN` yM.`sN/`oMy.:Mm-.hM: oN-`sN/ +y:
-Mm yM- /My .Mh `Mh `Ny mN` dM+://. +Mo `Nm oM: dM/:+o- +`
`+NN-` .dN+. `hm-`om: `Md.`/o``-mN: :dh/-:`.sNy.:Nm- sN+`/my.`.` -Nh`
`....` `...` .::. `--:- .... `.. `...`...` `..` `-::. -.
24
Name:
Anonymous
2012-01-23 19:43
>>18 '
>try to make a point
>forgets that the whole point was to make a co-routine design
>forgot to call free
25
Name:
Anonymous
2012-01-23 19:46
>>24
>>19
can't [multi]quote properly
26
Name:
Anonymous
2012-01-23 19:48
>>18
Why are you storing
off as well?
Why not simply do:
struct iterator *iterator_create(void *o,size_t l)
{
struct iterator *it = malloc(sizeof(*it));
if(!it) exit(EXIT_FAILURE);
it->end = (o + l);
it->objs = o;
return it;
}
int iterator_next(struct iterator *it)
{
int v = *it->objs;
it->objs++;
return v;
}
int iterator_hasnext(struct iterator *it)
{
return it->objs == it->end;
}
27
Name:
Anonymous
2012-01-23 19:49
>>25
of course I can properly
multiquote
"
>implying that's hard
28
Name:
Anonymous
2012-01-23 19:54
>>18,23
You don't even know what a coroutine is, do you toilet scrubber?
29
Name:
Anonymous
2012-01-23 19:55
>>26
it->end = (o + l);
...
return it->objs == it->end;
Try
it->end = (o + sizeof(int)*l);
...
return it->objs != it->end
30
Name:
Anonymous
2012-01-23 19:56
>>29
Oh, I didn't see he passed it as a
void pointer.
31
Name:
Anonymous
2012-01-23 19:57
>>29
And the second error was just stupid of me.. I'm going to bed.
32
Name:
Anonymous
2012-01-23 19:58
>>28
y r u so easy to troll kodak-kun?
````.................````
.+hmmmNNNNNNNNNNNNNNNNmmmmmmmmmmmmNNNNNmmddhyysoo+//:-.`
`/hNNy+::::----...````.://:://////////::---://+oossyhdddmNNNmdhso/:-`
/mMd/` .:/++/-``````````````..-::::::::---::::/so++osyhmNNms:`
-hMm/` `://:.`.-:://////////////:-.` ````...---..`.:/.:ohNNy/.
+NMs` `-:/-`.://+/-............` ````..----::::::::--.``` `/: `.+hNNy:`
`sMN/ `-::.`./+/-:oo++/:-.....---o+. `.-::/:::-.`..` `-sNNd/
`yMN: ./:```:+/:/:::.` `++` //-...```````./oo- .sNM-
yMN: .. `/o:-so-` +- :o` `-y- NM+
oMN: --`.o- .-://+++/::-.` :- s` `/ mMy
-sMN: ` ./sdmNMMMMMMMNmmmmho:` s ``......` +MN+`
-yNMN/``` ` `omNdNMMMMMMMMN:.-:/sdNms- :`-+shdmmmdmmmd+- /mNh/`
:hNMNNmo+//:-.` .oss/``hMMmymMMMMMMMMmss+-` `/NMN+ `.` .odNMMMMMMdhhmMMMm-`://:-...-..omNd+.
:hNNdm+-...-:///:--.`-:-/.`shdhyo/:::/o/+sydmNdyo+dMMy smmdmMMMNmmdddhhyso+:-` ..-...`.-/+-./dMm/
`sNmo+o. `/ydmmmddmmmho:.-` `:ymm` `.-/sdNmy/` `:+hMMy/-.`` :+::/+:.sMN`
`hMh-++ /dNd+-.``:--+hmNNdyo/----/sdNms- `-. `MM. ` .+hhhhhhh+-./+ .s.MM.
sMh` o `sMm/` :Nd `-/oyddmmmmmdo:` `MM/ -dy/-:smMdo///+hmm:`h o:MM.
`MM- o :MM: hMMy+-` `````` ` `..` `hNNy/. `sdmmNNNy``o: .-` s +-NM:
-MM` s :MN` `-/oyMNyhmmmho-.` ```````.s.ohdmmd/ -+hNmy/. `....` +Md .o s.MM:
.MM/ s` -MM:-dNmmmMN` `./smNmhs/.` ./-----::-sMd/:::-..`` +MMMmo` sMNo. `+s. .hsMN`
hMm. :/ dMN...` .mMy` `-+hNMNmho/-`` oMd- /dmmmmmh: -dMNNNh/:/-` `dMMMy `..-/oNMM/
.dMm- o.`.sm: sMMm+.` hMhoydmNmdhs+:.```.hNN:-h+--:++: `-```-sNNo`.` `:/- .omMMMMN``/+/.`oMN+
`yNN:`:++:. .sNMMMds+-``hMd` `.:/ohmNNmmdhso/.`` :NNhdNNs. `.+hNMmMMMMM: sMN:
:dNy+:.--` -dMMddNMNhmMMd-` `-:mMNNNNNmhys+/:-.```:++++. ```.-/sdNNNMN-+MMMMo oMN-
`+mMMy- `hMN-`:oyNMMMMds/-`` .MM:`.-:/oshmNNMMNmdddhhhhhhhhdmmNMMNo:``dM+ sMMMs `NM/
`oNMy- `oNN/ oMMNNMMMMNmhs+-oMm /Mm..-:/+/NMm///:.``/MM- mMo.yMMMy :MM.
.yMM/ :dMh- .MM-.:+ymMMMMMMMMd+/-` /Mm oMd `mMm.-/MMMMMMMMy +MM`
hMN. +NMmdMy ./ohdMMMMMMMMNmhyysyhMNyyyyyyyhMNyyyyhdmNMMMMMMMMMMMMMMo +MN`
`dMm. `oNMN- dMyoyhNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: +MM`
`hMm: `+dMms- -NM: `:+shdNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNMMN` /MM.
+NMs. -sNMd+. :NMs oMy:/osyhhhmMMMNmmmMMMNNhmMMdoNMm/NMo -MM-
`sNNo. `/yNNdyoNMo sMy hMd:` `mMm```dMy`+MMoNMd` `MM:
.sNNs- -o+. .-//. `:sdNMMy+:. yMy `NM. :MN: `dMN.`:NMMMh. mM+
.sNNh/../++:``-+o+-` ``:+ydNNNdhso+/::NMh` +MM` .+NMy:+yMMNNNNmyo- yMy
.ymNNho:.-++/:.`-::--` ``-/+syhddmmNNNNmmmmmNNMMmmmNMMNmddhyso/-.` oMd
`./ymNmy/.`-/+/:-`.:+++:. `````....-----------...````` ./ . :MN
`-odNNy/-.``-//:--.-/++/:. -----::::::::::--` .:+. +. .MM`
`-shmmNmho:.``.-::--:////:-.`````...--------.......-..---`` `:o` `NM.
``.-+ydNNds/- ```.-:::::----.```````````......````` .:+/-` NM:
`.:sdNNds/. ````.--::::::------------------/+:.` :NM:
`./ydNmh+-` ``````...........` +NMy`
`-+ydmmysso+/:-.` .oNNo`
`./osyhdmmNmdhs+:-.` `-+hmms.
``.-/oyhmmmmdhs+/:-....```...--:+shmNmy/.
`.-/+shddmmmdddddddddmmmdyo/-`
`...---------..`
```` ```` `..``
oddd- yddd` `+hdmmmds-
```` `..` `````..` `...`` yMMM:`..` dMMM` `...`` ```` `..` `..` yMMMyomMMN-
ymmdsdNNmy. dmmhhNNo :ydNNNmds. yMMMhmNNmy- dMMM` /ymmmmmds- ymmdsdNNmh+hmNNd+ :/+/`:mMMN-
hMMMd+oNMMm` NMMMdoo`+MMMy//mMMN- yMMMd+oNMMN. dMMM` sMMMo::dMMN- hMMMdohMMMNsoNMMM. :dMMms.
hMMM- yMMM- NMMM. mMMN` +MMMo yMMM: sMMM/ dMMM` NMMMhhhdNNNo hMMM- -MMMh yMMM- dNNd.
hMMMy:/mMMN. NMMN sMMM+.-hMMN: yMMMh::mMMN. dMMM` yMMM+--+o+/. hMMM. -MMMy yMMM- `yyyo
hMMMmNMMNd: mNNm +dNNNNNNh- yNNNhNNMNd: hNNN` `omNNmmNNd+ yNNN. -NNNy yNNN- `NNNd
hMMM..--. .... `-:--` `... .-:. .... .-::-. .... .... .... ....
hMMN.
````
33
Name:
kodak_gallery_programmer
!!kCq+A64Losi56ze
2012-01-23 20:01
>>32
Not possible since, like, uh...I just started posting on here a few minutes ago. Eerrr...this is because..uhh...like...I had to work at work today.
34
Name:
Anonymous
2012-01-23 20:01
>>32
lol i trol u
Go back to the imageboards. No one believes your stupid back-pedaling.
35
Name:
Anonymous
2012-01-23 20:03
>>34
I know this might be hard for some of you mental midgets to grasp, but you can sort of tell who is who based on their writing style.
36
Name:
Anonymous
2012-01-23 20:03
>>33
How was work today kodak-kun?
>>34
You should know not to feed the troll, ``faggot''. Now take your own advice and go back to /g/.
37
Name:
Anonymous
2012-01-23 20:04
>>36
They are one and the same
38
Name:
Anonymous
2012-01-23 20:05
>>35
hows about you be original and stop using things
kodak_gallery_programmer!!kCq+A64Losi56ze made up.
39
Name:
Anonymous
2012-01-23 20:05
>>36
It bit. The work I had to do was long and tedious -(. On top of that, I think I destroyed a few brain cells when attempting to "think".
40
Name:
Anonymous
2012-01-23 20:07
>>37
You really can't tell who is who based on their writing style can you? It's okay. The world still needs mental midgets.
41
Name:
Anonymous
2012-01-23 20:08
>>39
Aren't you suppose to have mental midgets to think for you since you're a
SOFTWARE ENGINEER ?
42
Name:
Anonymous
2012-01-23 20:08
OP here, well this thread went sour. Off to bed.
43
Name:
Anonymous
2012-01-23 20:10
44
Name:
Anonymous
2012-01-23 20:11
>>41
You forget that I work at Kodak. The mental midgets either end up in tech support, marketing, or they get laid off.
45
Name:
Anonymous
2012-01-23 20:12
>>43
The douche that doesn't use internet slang?
46
Name:
Anonymous
2012-01-23 20:14
>>44
Do you think I could get a internship working under you kodak-kun?
47
Name:
Anonymous
2012-01-23 20:15
>>45
Apparently you can't tell either
``mental midget''
48
Name:
Anonymous
2012-01-23 20:19
>>46
Are you capable of modifying an existing linux program that handles flash? In particular, you would need to modify it in such a way that when used with a series of scripts, it could automate the book making process on our website. In addition, we would need you to be able to port the shit over to OSX.
This is because a large portion of our customer base uses this OS.
49
Name:
Anonymous
2012-01-23 20:21
>>48
Never mind I think I'll just remain a toilet scrubber.
50
Name:
Anonymous
2012-01-24 3:13
>>48
The glorious Kodak-kun does this for a living? What a joke.