Your Programming Feats!

Message Bookmarked
Bookmark Removed
Today I made an application that lets me beam photos from my bluetooth phone to my mac; categorizes them; inserts them in a db; puts them in html galleries; uploads them using rsync... all with pretty little cocoa dialogs.

Language: perl, 288 lines. AppleScript, 20 lines [folder actions].
Difficulty: medium
Experience Gained: substantial

neat stuff:

use sigtrap qw(die normal-signals die error-signals);


$SIG{__DIE__} = sub { print "$0: $_\n" for @_;
`$CD msgbox --text "$0 Died" --style warning --informative-text "$_" --button1 "Abort"` for @_;
};

So any unchecked signal has $CD (Cocoa Dialog) pop a dialog so I can see it even when it is running as a folder action. I have this also setup for pseudo signal __WARN__.

Here is a regexp for matching status lines of rsync to get progress info out of them for a progress bar:

if(m/\((\d+),\s+(\d{1,3}\.\d)%\sof\s(\d+)\)$/)
{
print $fh "$2 ($2"."%) $1 of $3 files transferred\n";
}

absolutego (ex machina), Monday, 4 April 2005 05:16 (twenty years ago)

Experience Gained: substantial

LEVEL UP

Gravel Puzzleworth (Gregory Henry), Monday, 4 April 2005 05:42 (twenty years ago)

but can he code for the human heart?

latebloomer: strawman knockdowner (latebloomer), Monday, 4 April 2005 05:43 (twenty years ago)

ROFFLEZ

Alex in LA (deangulberry), Monday, 4 April 2005 06:15 (twenty years ago)

it looks like this right now: http://wizardishungry.com/hash/

absolutego (ex machina), Monday, 4 April 2005 06:51 (twenty years ago)

JW I salute you.

Andrew (enneff), Monday, 4 April 2005 07:07 (twenty years ago)

10 PRINT "GREG KITTEN PWNS!!11"
20 GOTO 10

g-kit (g-kit), Monday, 4 April 2005 07:08 (twenty years ago)

Hey look I made a JUNE OF 44 ALBUM COVER

absolutego (ex machina), Monday, 4 April 2005 07:11 (twenty years ago)

i made a statement to the power of infinite. WHO WINS?

g-kit (g-kit), Monday, 4 April 2005 07:14 (twenty years ago)

i mean infinity, obv

g-kit (g-kit), Monday, 4 April 2005 07:15 (twenty years ago)

while(1) { fork(); print "YUO R ALL GAY\n"; }

absolutego (ex machina), Monday, 4 April 2005 07:16 (twenty years ago)

i remember in Neighbours when Todd hacked into the school's computer. genius.
10 PRINT "BREAK INTO SCHOOL'S COMPUTER"
RUN

g-kit (g-kit), Monday, 4 April 2005 07:18 (twenty years ago)

Downloading the plain text data from the IMDB, and writing a perl script that brute-forced the Kevin Bacon Game. Still the best use of my university education, I feel...

carson dial (carson dial), Monday, 4 April 2005 07:21 (twenty years ago)

Does anyone know how to change Windows XP desktop wallpaper from command line? My stupid parent company has forced us to have the crappy new company logo as our desktop, it loads up when we login and replaces whatever we had. I want to stick a batch file in Startup that replaces that with my own wallpaper, but I r dumbass.

Help me subvert their evil plans!

Colonel Poo (Colonel Poo), Monday, 4 April 2005 08:15 (twenty years ago)

When I was about 13 I programmed a whole text adventure in BBC Basic with musical interludes and stuff. Sadly every time you went back to a certain screen you had to wait for the music to stop before you could carry on with the game.

dog latin (dog latin), Monday, 4 April 2005 08:50 (twenty years ago)

>BREAK INTO WORLD BANK
Please enter password.
>OVERRIDE PASSWORD
Okay.

I will post up a link to my crazy zombie text adventure game when it's finished. yall excited?

Ste (Fuzzy), Monday, 4 April 2005 08:52 (twenty years ago)

> Does anyone know how to change Windows XP desktop wallpaper from command line?

i think you can use regedit to find the filename of the wallpaper in the registry then write a reg script that changes that value.

(mine's "My Computer / HKEY_CURRENT_USER / Control Panel / Desktop / Wallpaper" but then i'm on win2k so...)

.reg files:
http://support.microsoft.com/kb/310516/

koogs (koogs), Monday, 4 April 2005 09:15 (twenty years ago)

oh I already tried changing the registry. doesn't work, it doesn't actually change the wallpaper on the screen. I assume it would if I rebooted the PC, but then the evil login script will just change it back to 0n3.T3l again. Is there a command that will refresh the display from the registry values? Cos that would probably do it.

Colonel Poo (Colonel Poo), Monday, 4 April 2005 09:22 (twenty years ago)

compile the below and run with your picture as the argument

using System;
using System.Runtime.InteropServices;
class MainClass
{
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern int SystemParametersInfo (int uAction , int uParam , string lpvParam , int fuWinIni) ;
public static void Main(string[] args)
{
SystemParametersInfo(20, 0, args[0], 0x1 | 0x2);
}
}

willdabeast, Monday, 4 April 2005 09:40 (twenty years ago)

Have you tried renaming the name of the graphic file you want to the one the company wants?

Mr Noodles (Mr Noodles), Monday, 4 April 2005 10:38 (twenty years ago)

If the sysadmins are at all sane, they'll have put it in a read-only file and folder.

caitlin (caitlin), Monday, 4 April 2005 10:39 (twenty years ago)

A more likely if is:
If the sysadm are lazy and don't care for the bosses vanity project, they would have done the minimal amount of work possible.

Mr Noodles (Mr Noodles), Monday, 4 April 2005 11:20 (twenty years ago)

Hah if I overwrite the logo file with my own desktop, everyone else in the company will also get my wallpaper! Way to get fired...

Colonel Poo (Colonel Poo), Monday, 4 April 2005 11:21 (twenty years ago)

I use this script to read a flat file of my mozilla bookmarks (generated using lynx -dump and vi) one at a time for del.icio.us filing at my own pace. "Only 474 lines to go!"


#!/usr/bin/perl
print $ARGV[0],"\n";
$file=$ARGV[0];
open(F,"<$file") or die "can't read";
@lines=<F>;
close(F);
srand (time ^ $$ ^ scalar @lines);
die "no more urls" if(scalar @lines==0);

$line = int rand(scalar @lines);
$lines[$line] =~ s/\#.*$//; # strip anchor links
chomp $lines[$line];
print `open '$lines[$line]'`;
print STDERR "only ",(scalar @lines)-1," lines to go!\n";
print "$lines[$line]","\n";
undef $lines[$line];
open(F,">$file") or die "can't write";
foreach (@lines)
{
print F $_;
}
close(F);

absolutego (ex machina), Monday, 4 April 2005 21:31 (twenty years ago)

http://www.techprep.ab.ca/abtp/saw/images/law_img2.jpg

o. nate (onate), Monday, 4 April 2005 21:37 (twenty years ago)

every single thing in here makes 0% sense to me. But i would like to learn.

Hari A$hur$t (Toaster), Monday, 4 April 2005 21:40 (twenty years ago)

My real answer: at my old job we had a firewall where connections could not be made from outside the firewall to inside the firewall, but you could make connections in the opposite direction. I had some mp3s I wanted to share with a friend, but IM'ing files didn't work with the firewall. So I wrote two little programs: one that started up on his machine and listened on a certain port, then I started the program on my machine that connected to his machine. Once the connection was established that way he could browse my files and double-click on them to download them.

o. nate (onate), Monday, 4 April 2005 21:44 (twenty years ago)

that's cute!

absolutego (ex machina), Monday, 4 April 2005 21:48 (twenty years ago)

Yeah, it worked pretty well. It was pretty easy to do in Java, and I learned a bit about Swing GUIs.

o. nate (onate), Monday, 4 April 2005 21:53 (twenty years ago)

multithreaded gui programming in java sucks

absolutego (ex machina), Monday, 4 April 2005 22:32 (twenty years ago)

no, it does not.

Mr Noodles (Mr Noodles), Monday, 4 April 2005 22:48 (twenty years ago)

If there should be one thread where the two of you can get along, it should be the programmer nerd one...

Alex in LA (deangulberry), Monday, 4 April 2005 22:50 (twenty years ago)

It does if you need to add a second thread to your program at the last minute and have never done any synchronization in java.

absolutego (ex machina), Monday, 4 April 2005 22:50 (twenty years ago)

I'm really amazed Noodles has a such a hateful heart.

absolutego (ex machina), Monday, 4 April 2005 22:52 (twenty years ago)

Doing distributed processing of postscript for animation - the shell script
that splits the whole animation into smaller jobs for the network batch
queue makes the jobs smaller as it approaches the end, so I don't end
up waiting too long on my slowest processor.

shieldforyoureyes, Monday, 4 April 2005 22:54 (twenty years ago)

Dave, I just attended a lecture on software transactional memory and lock free queues... It was pretty neat. Sun+Intel are adding support for building memory transactions in cache. Seems interesting!

absolutego (ex machina), Monday, 4 April 2005 22:58 (twenty years ago)

I will post up a link to my crazy zombie text adventure game when it's finished. yall excited?

I am!

Jordan (Jordan), Monday, 4 April 2005 23:02 (twenty years ago)

http://www.straightdope.com/mailbag/mzombiepower.html

absolutego (ex machina), Monday, 4 April 2005 23:04 (twenty years ago)

i turned that "nibbles" game on Qbasic on DOS to 4 player, once, when i was young.

ken c (ken c), Monday, 4 April 2005 23:06 (twenty years ago)

that's pretty cool!

absolutego (ex machina), Monday, 4 April 2005 23:08 (twenty years ago)

When I was 12 I used one of those "Learn PERL In 24 Hours" books so that I could join the programming staff on an online wrestling sim I played.

stephen morris (stephen morris), Monday, 4 April 2005 23:17 (twenty years ago)

I haven't done any programming since puberty, tho.

stephen morris (stephen morris), Monday, 4 April 2005 23:18 (twenty years ago)

I don't code, but I test. I just found a really cool bug too.

That still doesn't make up for being here until 7:30 at night. :(

Jordan (Jordan), Monday, 4 April 2005 23:24 (twenty years ago)

If there should be one thread where the two of you can get along, it should be the programmer nerd one...

So I can be reminded how fun it was for him to break Alan's work after a rash of phpBB attacks? The last thing I need is after a day of dealing with bankers and brokers is to have a student use published attacks to pick on a volunteer’s code. No one picked at G's holes right after he ported from Greenspun so I don't see why he has the right to try and take a run at Alan's work.

Mr Noodles (Mr Noodles), Monday, 4 April 2005 23:34 (twenty years ago)

So I can be reminded how fun it was for him to break Alan's work after a rash of phpBB attacks?

I'm not sure how phpBB relates to ILX.

The last thing I need is after a day of dealing with bankers and brokers is to have a student use published attacks to pick on a volunteer’s code.

What "published attacks"? Are you talking out of your ass? To construe any annoying crap I have pulled on ILX as an 'attack' is moronic.

No one picked at G's holes right after he ported from Greenspun so I don't see why he has the right to try and take a run at Alan's work.

Yes and now they're fixed. Time to get one perspective, grudge bearer.

absolutego (ex machina), Monday, 4 April 2005 23:56 (twenty years ago)

That's right, bitch! WHERE ARE YOU NOW?

absolutego (ex machina), Tuesday, 5 April 2005 00:24 (twenty years ago)

http://www.diamonddollies.com/Flower%20Pot%20Man.jpg

Remy (x Jeremy), Tuesday, 5 April 2005 00:29 (twenty years ago)

Blow me kid, I was eating dinner.

Mr Noodles (Mr Noodles), Tuesday, 5 April 2005 02:28 (twenty years ago)

WHY WERE YOU USING PUBLISHED ATTACKS ON YOUR FOOD LIKE THAT

Ian John50n (orion), Tuesday, 5 April 2005 02:34 (twenty years ago)

Cause we are all noize roffle roffle.

Mr Noodles (Mr Noodles), Tuesday, 5 April 2005 02:44 (twenty years ago)

well, i was using them conversationally i guess.

fake rock critics are the art of pretend knowing. bullshitter revealed!
m.

msp (mspa), Wednesday, 6 April 2005 06:53 (twenty years ago)

Anyway, in multiprocessor environments (NOT in multiple chips on core usually - they tend to share a cache... but not always) the architecture has a defined set of properties on how the actual ordering of memory operations corresponds to the order that they are visible to various nodes. this is refered to as a memory consistency model. once you move past bus based smp, relaxing consistency models improves memory throughput and latency since not all memory operations have to have the same total order across nodes

absolutego (ex machina), Wednesday, 6 April 2005 07:31 (twenty years ago)

As long as it doesn't fuck load/store purity. I am highly suspicious
of any such hacks.

shieldforyoureyes, Wednesday, 6 April 2005 09:36 (twenty years ago)

sort of similarly... i'm highly suspicious of automerging in cvs and other source control software.
m.

msp (mspa), Wednesday, 6 April 2005 12:41 (twenty years ago)

MIMD is not the same as a load of SPARCs. MIMD is a collection of processors collaborating on a single problem that uses shared data. Something like the SETI project shares similarities to a SIMD machine, i.e. lots of different processors are executing independently of each other to process a dataset unique to the processor. No one processor's results are dependent on the results of another, so the machines running SETI code against your allocated lump of data do not need to communicate with each other. The speed at which the problem can be solved is directly proportional to the number of processors allocated to the task.

This isn't the case for most problems, which have dependencies inbuilt. To solve these efficiently you have to work harder and use a MIMD-style machine/approach. The problems you're trying to solve (more quickly by parallelizing constituent parts) are split into sub-problems (as ever), but unfortunately there are dependencies between these sub-problems, which means you need to co-ordinate effort if you're going to execute sub-problems in parallel. There are various topologies for letting MIMD processors talk to each other efficiently and some are described in this document: http://carbon.cudenver.edu/~galaghba/mimd.html

It doesn't look to have changed a lot since I did this stuff at uni, although it's not clear when this article was written.

KeefW (kmw), Wednesday, 6 April 2005 16:43 (twenty years ago)

I said the CM5 (Connections Machine 5 supercomputer) was a classic example
of MIMD. It happens to use SPARC processors.
On the other hand, my home computer is an 8-processor Sun, but I would *never*
refer to it as a MIMD machine.

shieldforyoureyes, Wednesday, 6 April 2005 19:50 (twenty years ago)

this "MIMD" concept seems kind of nebulous.

Alex in TCBY (ex machina), Wednesday, 6 April 2005 20:46 (twenty years ago)

Traditionally, the terms (SIMD/MIMD) are *only* used in discussing
different types of massively parellel supercomputers.

shieldforyoureyes, Wednesday, 6 April 2005 21:46 (twenty years ago)

I said the CM5 (Connections Machine 5 supercomputer) was a classic example of MIMD

Oh sorry, fair enough. I've never heard of a CM5.

I'm not convinced this stuff is going anywhere though... It's been around for ages, with little impact on the mainstream (outside maybe graphics cards). That said, the grid thing's been around since Andrew Tanenbaum's Amoeba in around 1988 and it's hitting the headlines now, so you never know.

KeefW (kmw), Wednesday, 6 April 2005 22:49 (twenty years ago)

Andrew T's grad program looks tasty... :/

Alex in TCBY (ex machina), Thursday, 7 April 2005 01:57 (twenty years ago)

well, a lot of the ideas get rehashed... various boundaries move is all... and so on. and then just "Perfect Storm" conditions form for certain things. i mean... 1988? what was happening with the internet at that point? the time wasn't ripe. even since 1995, since my first job, i've seen a gajillion architectures come and go that were gonna let everything talk to everything and you'd have all this super duper parallel lunacy goin on...

m.

msp (mspa), Thursday, 7 April 2005 04:27 (twenty years ago)

I have access to through school + work:

Sun Sunfire
IBM Regatta Power4
Linux TreadMarks / Cashmere 2-L clusters (some kind of memory channel interconnect)

Parallelism is now.

Alex in TCBY (ex machina), Thursday, 7 April 2005 05:01 (twenty years ago)

but 5-10 years ago i had access to maspar and ibm sp action... it's ongoing. slowly as more gpu's and ppu's appear on chips in our home machines, maybe parallelism will reach beyond the acdemic.

for most businesses... a blade server is the closest thing to parallelism... that's what i see. shared memory = a pool of connections to a transactional database. the big problem with specialized hardware is the cost. and parts breaking and ruining an entire system board in the process. blade servers that are hot swappable alongside hotswappable disc arrays make better production sense. round robin the requests on the network. clusters.

my boss keeps talking grids. we've got weighty computations that just involve large amounts of rollups and sorting... it'd be great to have all the state's spare machines crunching. WAY cheaper than legacy mainframe time too. it's insane how expensive and lame those machines are. omg, like a small cluster of desktops could probably wallop that old school shit. not to mention getting away from fixed width text databases and stuff. ughness. it's shocking what our local, state, and federal gov uses to do ze computational tasks. old money contracts. it smells like $50 bottles of ketchup in defense spending.

anyway, sorry... this rant is entirely removed from programming feats.
m.

msp (mspa), Thursday, 7 April 2005 17:58 (twenty years ago)

maybe parallelism will reach beyond the acdemic.

MULTIPLE CORES ARE GOING TO BE THE DEFAULT IN LIKE 5 YEARS. WE HAVE MODERN OPERATING SYSTEMS THAT SUPPORT THIS.

Alex in TCBY (ex machina), Thursday, 7 April 2005 20:22 (twenty years ago)

i love reading this even though it makes no sense to me whatsoever!

i'm just glad that there are people tending to these matters...

ronny longjohns (ronny longjohns), Friday, 8 April 2005 00:24 (twenty years ago)

of course, you do realize that parallelism made jar jar binks possible

Where is Erasto B. Mpemba? (ex machina), Friday, 8 April 2005 00:30 (twenty years ago)

it's funny tho cause despite having multiple procs onboard, a lot of software and OSes make little use of it. or other limitations to the architecture totally limited everything. man, i remember being so insanely impressed by the BeOS demo we had in ACM... the guy could turn on and off the processors... you had total control. very rad. and you knew the processors were actually being used.

werdness.
m.

msp (mspa), Friday, 8 April 2005 03:07 (twenty years ago)

dude, any apps with pthreads can use multiple procs.

Where is Erasto B. Mpemba? (ex machina), Friday, 8 April 2005 03:55 (twenty years ago)

true, but still, much software ignores that. it's a common addage that, "your dual pentium goes to waste."

the windows is very guilty of this i'm thinking. (that might be why i've heard it cause i live in windows land too much.)

m.

msp (mspa), Friday, 8 April 2005 04:19 (twenty years ago)

you're right tho... dual cores are gonna start going towards the desktop (this year in fact evidentally...)... so maybe with the desktop home market kicking it, more apps will be written with threading in mind. etc etc.

m.

msp (mspa), Friday, 8 April 2005 04:32 (twenty years ago)

Any machine running multiple apps at once makes use of multiple cores too.

caitlin (caitlin), Friday, 8 April 2005 06:34 (twenty years ago)

The point you make here is correct. Parallelism in this sense is here and now and has been for years/decades. Everything we run in production at work runs on parallel processors.

However, the SIMD/MIMD chat above is not the same thing.

Grid and parallel processing works fine seamlessly, i.e. requires no input from programmers when one OS process does not span more than one processor. Shared memory makes no difference, since the memory allocated to a given process is protected in the same way it is on your PC (other than the explicit 'shared memory' OS calls mentioned by Jonathan; these are a special case and typically used for IPC rather than collusion on parallel problems). In a nutshell, it works no differently to a single processor machine, except that something decides "why not run it on this processor instead of that one because it's not doing much right now".

SIMD and MIMD are when individual programs/processes collude to solve a problem using multiple processors with which to do that. You could do it by forking if you wanted; that would be basically the same thing; albeit, with less facilities to help you reach your goal. The equivalent would be that the OS said 'In this program, I've got a loop doing something 100 times; I've worked out there are no dependencies between iterations of the loop; therefore, I'll put each iteration on an individual processor so that it goes faster'

There are well-defined cases that live in a grey area; the one about data sources you make earlier fits here. All programs pull data sources from a single connection pool. This can work because it has been very well defined what the job of the connection pool is. However, each process using the connection pool will all execute fully on a single processor.

On another point: whilst it is true that a few PCs will beat an S/390 style mainframe in terms of processing; they won't come close to it in terms of I/O, which is typically what you need an in online transaction processing environment. That's not to say they're not overpriced; alternatives do exist. Lots of companies are pretty well locked in by assembler programs and older Cobol programs that cannot be ported easily to other systems. Looks like your problem is one of computation though, where parallel processors and grids are where you will score.

KeefW (kmw), Friday, 8 April 2005 12:18 (twenty years ago)

oh i think i understand mimd now

Where is Erasto B. Mpemba? (ex machina), Friday, 8 April 2005 13:39 (twenty years ago)

This gives a good overview of a lot of the stuff discussed here.

http://www.sharcnet.ca/past_workshops/excel_slides/IntroParallel_Waterloo.pdf

I think the point I failed to make above is related to this point:

'In this program, I've got a loop doing something 100 times; I've worked out there are no dependencies between iterations of the loop; therefore, I'll put each iteration on an individual processor so that it goes faster'

Is not possible to do in the general case automatically, i.e. you can't get the compiler to do it. It's theoretically possible, but I believe it's an NP-complete problem; that's to say, it's intractable.

Being an NP-complete problem means that programmers have to do the work themselves, using heuristics and intuition. This is why it is so hard and why it will not catch on in the mainstream. Compilers have been built that use heuristics themselves; maybe there is some mileage in this; your professor might know.

KeefW (kmw), Friday, 8 April 2005 14:24 (twenty years ago)

thanks for posting that pdf. very useful introduction to concepts i've glossed over the nuances of.
m.

msp (mspa), Friday, 8 April 2005 15:21 (twenty years ago)

http://www.cs.rochester.edu/users/faculty/sandhya/csc258/

tons of pdfs there! (that is my class)

Where is Erasto B. Mpemba? (ex machina), Friday, 8 April 2005 15:52 (twenty years ago)

As KeefW points out, the difference between a mainframe and a PC is mostly
IO (also subtleties like reliability and accurate diagnostics, etc.).
Likewise, the difference between a supercomputer and a PC is memory
bandwidth. A Cray from the mid 90s can transfer 900 gigabytes per second
between its processors & main memory.

shieldforyoureyes, Friday, 8 April 2005 19:35 (twenty years ago)

yeah... my grid vs. mainframe comment was mostly in frustration with the software+people interfaces we have to go through to get to data that lives there. not to mention the cost.

those machines are cool. the people admining them in my case are just very disinterested in change.
m.

msp (mspa), Friday, 8 April 2005 20:21 (twenty years ago)

x-post

Agree about the reliability thing, although I think some of this is down to software as well as hardware, in that OS/390 is over 40 years old; CICS & IMS DB/DC are over 35 years old and DB2 20 years old. Given that the bulk of what these machines do is largely characterized by these four pieces of software, it's not too surprising that they're pretty stable.

IBM's top end Unix machines (P/690s) have, I believe largely the same reliable kind of hardware; they're just often running much younger and much less stable software.

msp... Tell me about it! It's not easy getting to data. How do you do it where you work?

KeefW (kmw), Friday, 8 April 2005 20:23 (twenty years ago)

re: np completeness. my gut tells me there are lots of special cases that can be automatically picked out + head vs. tail recursion vs. iteration wld probably play a role + how much "hint" is given in language design + the giant advantage of bytecode in this regard, at least potentially.

Sterling Clover (s_clover), Saturday, 9 April 2005 03:10 (twenty years ago)

the stuff that automates making datastructures be accessable in parallel with software transactional memory is a subset of this type of problem

it is solved and we will be seeing this stuff soon. right now the tools to solve it require some "graduate student" coaxing though to work right.... according to my prof


i am durnk

The Scottish Restauranteer (ex machina), Saturday, 9 April 2005 06:36 (twenty years ago)

There are two separate problems as I see it:

- Avoidance of race conditions etc. by appropriately grained locking mechanisms; i.e. putting 'synchronized' in the right place to maximise throughput whilst ensuring there are no reentrancy-related defects

- Optimal load balancing of program components on multiple processors

The second is the hard problem to solve (not to trivialize the first); although executable code bound at runtime would seem to make the first an impossible problem to solve in that case too.

Sterling: I would agree with what you say in general. Not sure about recursion/iteration. There is I guess a case in functional languages like the aforementioned Haskell as well as Lisp/Scheme and ML etc, where recursion is the only option, that since in these languages side-effects are not possible in functions, that this makes them easier to make assumptions about and therefore parallelize.

Additionally Jonathan, I think you're being optimistic about seeing this stuff any time soon... Time will tell.

- OO: invented 1967, Norway, Simula-67. Hyped late '80s, enters widespread use mid '90s.

- GUI 'WIMP' interface: Douglas Engelbart 1968. Enters mainstream in 1983; Apple Lisa. Widespread in '90s.

- Grid computing: Amoeba development completed in 1983. Being hyped now. Yet to enter mainstream in any significant way; other than say SETI.

- Databases: it's a good bet the contents of your bank account are stored in a pre-relational database.

It never ceases to amaze me what a remarkably conservative industry computing really is!

KeefW (kmw), Sunday, 10 April 2005 18:13 (twenty years ago)

Thanks for perldsc!!!

Open your eyes; you can fly! (ex machina), Thursday, 21 April 2005 21:54 (twenty years ago)

SELECT Distinct ( count (pv.idnumber) )
FROM prospect_view pv, subscription s
WHERE pv.idnumber = s.idnumber
AND s.journalcode = 'STB'
AND pv.state = 'AZ';

Levinicus (nordicskilla), Thursday, 21 April 2005 21:57 (twenty years ago)

that is what I do all day, pretty much.

Levinicus (nordicskilla), Thursday, 21 April 2005 21:57 (twenty years ago)

Do you work for a direct marketing company?

Anyway:

1) perl -MCPAN -e "install Mac::Glue" is insane. It does tons of text to speech during make test!!!

2) http://wizardishungry.com/mrtg/ ... I am adding MORE STATISTICS as we speak.

Open your eyes; you can fly! (ex machina), Thursday, 21 April 2005 22:33 (twenty years ago)

i didn't think adam was a programmer! i thought he made films.

caitlin oh no (caitxa1), Thursday, 21 April 2005 23:10 (twenty years ago)

I could show you SQL that would send cold chills down your spine, and wake you up in the middle of the night. No, it is better you do not know.

WORF (ex machina), Thursday, 21 April 2005 23:31 (twenty years ago)

I really am not good at SQL, but I get by.

Do you work for a direct marketing company?

Not exactly, no.

i didn't think adam was a programmer! i thought he made films.

No Caitlin, this is how I get money to make films.

Levinicus (nordicskilla), Friday, 22 April 2005 00:24 (twenty years ago)

sql... i know enough to get basic jobs done... but yeah, i bet WORF could make me cry cause i've seen some doosey ass recursive stored procedures and stuff... i can make sense of it, but i probably would have never been able to write it.

nice graphics wih... also besides perldsc, perlLOL is useful. (for the lazy.)

this perl class i took in my sophomore year ruled... our book was the man pages.... i think i read that forwards and backwards. i convinced all my profs that semester to let me code my other projects in perl. crypto being the main class. we did a text based simulation of the enigma machine... extra credit that was required for the grad students was to CRACK THE FREAKIN THING. which, he attempted to explain how to crack it but i was baffled by his poor teaching skills. thank god i was a peon undergrad.

m.

msp (mspa), Friday, 22 April 2005 02:12 (twenty years ago)

two months pass...
AppleScript:

set state to 0 -- This state means that we think that I am home because of Bluetooth.


try
tell application "iSync"
activate
synchronize
do shell script "sleep 45" -- for some reason there seem to be some races here... it should work fine
if sync status is (not 1) then
set state to sync status -- This means I am not home. Try Emailing
end if
quit
end tell
on error
set state to 1
end try

if state is 1 then

-- email cellphone here
try
tell application "Mail"

set theSender to "me@gmail.com"
set theAddress to "me@fone"

set theSubject to "Wakeup Jon."
set theBody to "There's probably something you need to do soon."

set newMessage to make new outgoing message with properties {subject:theSubject, content:theBody, sender:theSender, address:theAddress}

tell newMessage

make new to recipient with properties {address:theAddress}

end tell

send newMessage

end tell
on error
set state to 2
end try
end if


if state is not 1 then -- Try to wake me with iTunes
try
set volume 100 -- sys
tell application "iTunes"
activate
set sound volume to 100 -- itunes
set this_playlist to (playlist named "WAKEUP STUPID")
play this_playlist
end tell
on error -- play anything to wake me up
set state to 3
end try
end if


if state is 3 then -- uhhhhhhh
try
tell application "iTunes"

set this_playlist to (playlist named "Library")
play this_playlist

end tell
on error
set state to 4
end try
end if

if state is 4 then -- UGHHHHH
try
say "Good mornin', good mornin'!We've danced the whole night through,good mornin', good mornin' to you. Good mornin', good mornin'! It's great to stay up late, good mornin', good mornin' to you."
beep
beep
beep
beep
beep
beep
beep
beep

end try
end if

THE JAMES DEAN OF THE OLD TESTAMENT (ex machina), Monday, 27 June 2005 06:27 (twenty years ago)

one year passes...

I need some good tutorials on Python and wxPython. Anybody got any pointers, other than the usual ones?

kingfish, Friday, 15 June 2007 22:16 (eighteen years ago)

SHOW THEM TO ME

Alan, Friday, 15 June 2007 22:20 (eighteen years ago)

http://www.ibiblio.org/obp/thinkCSpy/

this is what I'm using to get spun up on editing and writing new cron jobs for analysis. unfortunately it would appear that anything worthwhile is also going to call for me to have to dig out Statistics for Dummies as well

TOMBOT, Friday, 15 June 2007 22:26 (eighteen years ago)

I wrote a ruby script to allow LDAP queries/updates from instant messaging clients (xmpp) it uses a bot so you can do simple stuff easily.

Jarlrmai, Friday, 15 June 2007 23:12 (eighteen years ago)

I wrote a Python tutorial as part of my Masters. http://pentangle.net/python/

I keep meaning to update it and maybe hawk it to some educational publishers. Too busy though.

Yesterday I successfully ported some code from column major IDL to row major Python. For a while all my galaxies were rotated 45˚, but I think I squashed all the array[x,y]s. I am still dealing with some horrible cancellation errors though. Mother fucking floating points.

caek, Friday, 15 June 2007 23:39 (eighteen years ago)

three weeks pass...

a friend had a nice idea and wasn't too difficult to write a script for - myspace playlists - supply a list of names and get back an m3u file of all the tracks on the relevant pages. 50 lines of bash, half of them blank or comments.

koogs, Tuesday, 10 July 2007 08:51 (eighteen years ago)

one year passes...

http://www.mullsports.com/frogger.rar

been working on 2d games lately, and started doing a frogger game. use keys Z,X,K,M to move. All you can do so far is jump on the logs and turtles and die in the water. I have traffic too but not put it in yet. soon.

Ant Attack.. (Ste), Tuesday, 3 February 2009 23:29 (seventeen years ago)

I could tell you, but then you'd know too much.

Mr. Snrub, Tuesday, 3 February 2009 23:37 (seventeen years ago)

three years pass...

Just spent two days trying to track down a problem with an Arduino project. Turns out the fault is a memory leak in the Strings library. m%^$%^$^ fu$%ing f$%^ (as my code was displaying on the LCD as leak milled RAM)

second dullest ILXor since 1929 (snoball), Saturday, 14 July 2012 10:04 (thirteen years ago)


You must be logged in to post. Please either login here, or if you are not registered, you may register here.