My team has been working on a project aimed at extracting realtime, anomalous, relevant information from the Twitter public feed. Part of our engagement is to investigate commercial applications of the technology we develop and to that end we are going through some early alpha tests of a UI for the technology. The technology works, and in many cases seems to beat both local and national media to items of emerging interest; it also sometimes generates false positives. My focus is creating a compelling user product and experience with this technology and I could use some feedback to help direct my efforts. I am asking for a few friends to take an early look and provide any feedback they care to give, especially on the potential value of the product to your daily routine. My team will be iterating on the feedback as quickly as we are able, so initially I’ll just be taking groups of ten or so and seeing how it goes until I can get out a next revision. If you have any interest in participating in one of the early groups please let me know and I will send the full page description of what we have built and put you on the list for one of the test groups. The standard alpha tester caveats apply.
Also any direct connection to a reporter I could talk to at the Bloomberg Speed Desk would be appreciated.
Thanks! – Contact via LinkedIn please.
Most of the software I write these days makes use of found software. Like the Dada art movement, I turn software I find on the internet into works that please me, and my clients. [ http://en.wikipedia.org/wiki/Found_object ]. This style is different I think than what is taught in CS and CE, where knowledge of algorithms, and BigO, are primary. The spectrum from original algorithm development to consumer product with large embedded software component is broad. In the strictest sense I focus on the need of my client, or my perception of their need and what might best address the gap. Rarely does the need start with a wholly novel algorithm. Thinking about it, the last time I developed such an algorithm may have been in 1992 for a CD-i compression scheme called DYUV where I enabled blits into the compressed data structure.
Recently my team has been working on a route generation package for UAVs. The constraint is it must be open software or developed in-house. People wanted to start in-house using standard A * search techniques. But we looked to see what was available – easy to do with Google. Looking for path finding I came across [ https://code.google.com/p/straightedge/ ]. A terrific place to start, it is in Java, it is BSD licensed, it has some nice visualization capabilities – always helpful for debugging. Now what is my software engineering point here? It is that we can probably save a great deal of effort by looking for found software that meets our needs but the task is not effort free, and in fact we may find that we go well down the path of using this software only to find some showstopper. My point is, I did not have to author an A * search algorithm, at most I need to know about it so I could work my Google search. What I do need is the long term experience of patching together various Java projects into a working cohesive structure that solves my clients’ problems. On a larger scale consider the software we will probably never have to write; an SQL data base (Postgres, MySQL, etc) a no-SQL DB (Couch, Mongo, Neo4j, etc), a fast messaging system (ZeroMQ, RabbitMQ, some other MQ d’ jour), your OS ( Linux, OpenBSD, even Darwin, and if you don’t like how it works the code is there to change ). So being facile with many of these pieces helps, if you get stuck, being familiar with method of debugging is most important, and in making a large project being familiar with SCM and project architecture is most beneficial.
The Eclipse IDE and any IDE based on it do not take full advantage yet of the Macbook Pro Retina display. The link above offers an interim fix.
I wanted to recycle my Nokia 3650, but not to give up the memory card with any info. Turns out the Macbook Air has a slot. Let’s see what happens.
Using the System Information App - I get Built in SD Card Reader:
Vendor ID: 0x05ac Product ID: 0x8404 Revision: 2.00 Serial Number: 310
Capacity: 16.1 MB (16,089,088 bytes) Removable Media: Yes BSD Name: disk1 Partition Map Type: MBR (Master Boot Record) S.M.A.R.T. status: Not Supported Volumes: NO NAME: Available: 10.1 MB (10,133,504 bytes) Capacity: 16 MB (16,039,936 bytes) Writable: Yes File System: MS-DOS FAT12 BSD Name: disk1s1 Mount Point: /Volumes/NO NAME Content: DOS_FAT_12
Lets get a dd of what was there.
dd if=/dev/disk1 of=nokiasdcard.dd
That worked to get a mountable version, and then I wiped the card using Disk Utility.
In the end my son wanted the retro phone, no doubt to show his friends the ancient technology.
I’ve been an occasional user of Mathematica since version 2.0. While it is a rare and lucky project that has enough math making it necessary to break out Mathematica, when it does happen it is nice to have the Swiss Army Knife of symbolic math and graphics manipulation there in my box of tools.
I am working a DARPA project called MRC, the BAE portion of which is called SOUND.
One part of this uses the enhanced Xen Flux Time Travel work, which looks to me like a great advance in debugging intermittent bugs.
To make it easy to test and integrate I am trying to run a guest VM inside of the modified Xen inside of VMWare Fusion on my Mac. This is to save me the trouble of acquiring and stacking more hardware into my tiny office.
I miss the days when I was confused because I had ssh’d into some server and then into another and could not recall which system I was editing files on.
Update: Check out Nagios which is an open source service monitor. This looks like a good solution. Wish I had found it before I did my little project!
|ServerMonitor is a small java program that monitors a server and sends email to the administrator when the server is not available.I have been having some reliability problems with a server that I depend on and wanted an easy way to be notified if there server had stopped running. This program is very simple to use.
Set smctl.sh to be executable with $chmod u+x
[drew@drewsG5 serveMon]$ chmod u+x smctl.sh [drew@drewsG5 serveMon]$ javac ServerMonitor.java [drew@drewsG5 serveMon]$ ls -la total 16 drwxr-xr-x 5 drew drew 170 May 2 22:22 . drwxr-xr-x 11 drew drew 374 May 2 22:20 .. -rw-r–r– 1 drew drew 3617 May 2 22:22 ServerMonitor.class -rw-r–r– 1 drew drew 5794 May 2 14:22 ServerMonitor.java -rwxr–r– 1 drew drew 493 May 2 22:18 smctl.sh [drew@drewsG5 serveMon]$
# Edit these lines for your particular setup HOST=www.host.com PORT=80 INTERVAL=10 REFHOST=refhost REFPORT=81 ADMIN=you@localhost SMTPHOST=mail.localhost
To see that everything is running correctly $tail -f log.out
[drew@drewsG5 serverMon]$ ./smctl.sh start [drew@drewsG5 serverMon]$ tail -f log.out Starting ServerMonitor. host:mail.host.edu port:25 refHost:www.host.edu refPort:80 interval:10 adminEmail:you@localhost smtpHost:mail.smtp.localhost [Mon May 03 17:18:31 PDT 2004] mail.host.edu seems to be running.
Note that only one email will be sent on server failure. When the message is received, you should examine log.out for details about the failure. Then I suggest that you stop and start ServerMonitor again to check for the next problem.
# TODO: check is pid file already exists – and ServerMonitor is already running
Model Driven Architecture (MDA) is an OMG specified approach to software development intended to ,”…separate[s] the specification of functionality from the specification of the implementation of that functionality on a specific technology platform.”
I have had an opportunity over the last two years to become quite familiar with one large scale, leading edge development using MDA.
The short answer is, Brooks is still right. There is no silver bullet to software development.
What I seem to notice is that there is no lack of smart people working on the project and the main distinction between folks is the years of experience.
If you come across iUML or the corpse of Kennedy Carter, run away, the zombies will eat your brain.