While I was out at OSCON 2008 I got the sense that the Erlang language was picking up speed, the flywheel was starting to spin. Now, I've been poking at Erlang for a while now. A thought that occured to me was that a good way to learn the language and help others was to build/write a book about Erlang for the Java developers, help bridge the gap. Bellow is a very rough draft of what that kind of a book might look like:
1. What is Erlang?
1.1 Functional Language
1.2 Power/value (concurrency, resilient, etc)
1.3 Apps building on Erlang
2. History of Erlang
2.1 Where did Erlang come from
2.2 Who wrote what
3 Current state of Erlang
3.1 Erlang.org
3.2 Erlang Conferences
4. A basic understanding of Erlang
5. Mapping from Erlang to Java and back
6. Concurrency
7. Conclusion & final thoughts
Appendix A: Erlang cheat sheet
Appendix B: erl - The Erlang shell
Appendix C: Erlang API including built in functions
Misc:
- Erlang is optimized to do tail recursive functions
Tuesday, July 29, 2008
Sunday, July 27, 2008
Beyond SOAP and REST
It's finally happened, one of my ideas has germinated beyond my little world. For the past 4+ years or so I've been messing around with instant messaging and alternative uses for it. I started off with utilizing AIM to access a series of web services providing the user with information. Next I moved on to building a system called StreamingRSS, the code for it is actually in the Google Code store, that allows a server to broadcast RSS to users instantly, ie Push, instead of Pull, which is what RSS does.
Now, I was out at OSCON 2008, awesome time, and one of the best presentations titled "Beyond REST? Building Data Services with XMPP PubSub". These guys took the concept of XMPP forward. I got a bunch of really good ideas from their presentation, places where I went one way and they went another way. Most of their ideas are a cleaner implementation then mine. For the most part, I think this is a result the time. Most of my work was done with an extreamly short time frame so I didn't have time to fully implement. Of course in some cases the technology simply hadn't escaped someone elses lab. No matter, I think these guys did an awsome job.
All this has given me the idea that it's time to write a good article or maybe a white paper on the topic and shate my knowledge on the topic. :)
Now, I was out at OSCON 2008, awesome time, and one of the best presentations titled "Beyond REST? Building Data Services with XMPP PubSub". These guys took the concept of XMPP forward. I got a bunch of really good ideas from their presentation, places where I went one way and they went another way. Most of their ideas are a cleaner implementation then mine. For the most part, I think this is a result the time. Most of my work was done with an extreamly short time frame so I didn't have time to fully implement. Of course in some cases the technology simply hadn't escaped someone elses lab. No matter, I think these guys did an awsome job.
All this has given me the idea that it's time to write a good article or maybe a white paper on the topic and shate my knowledge on the topic. :)
Emergency Beacon
So I was driving through Vermont this weekend and the wife and I were both playing with our iPhones, I've got a iPhone 3G and the wife has the original iPhone, and we were getting intermittent signal. I started to think of the poor CNet writer/editor and his family who got stuck in the middle of the wood out in north CA and died. Scarry thought to tell you the truth.
The wife and I started to talk about emergency supplies and creating some sort of emergency pack. We even talked about what we would put in such a pack and maybe we could sell it. The thing that then came to mind was some kind of emergency beacon. Thus the emergency beacon idea.
The basic concept would be small package, something you could easily store in the car, that when you activate would triangulate your location (GPS) and broadcast an SOS with your location. An after though was to throw in some sort of soalar panel. I think a basic model would just have lights indicating if the GPS locked in and then another light that indicates when the system is broadcasting the SOS. A higher end model would have a display with information like how many satelites the GPS can see, what your location is, and then that the system is broadcasting, and even battery charge/status.
I think this is an awsome idea, next stop is SparkFun to see if they have the parts. Of course the other search is to discover if someone else has done this. One of the keys would be "no subscription"
The wife and I started to talk about emergency supplies and creating some sort of emergency pack. We even talked about what we would put in such a pack and maybe we could sell it. The thing that then came to mind was some kind of emergency beacon. Thus the emergency beacon idea.
The basic concept would be small package, something you could easily store in the car, that when you activate would triangulate your location (GPS) and broadcast an SOS with your location. An after though was to throw in some sort of soalar panel. I think a basic model would just have lights indicating if the GPS locked in and then another light that indicates when the system is broadcasting the SOS. A higher end model would have a display with information like how many satelites the GPS can see, what your location is, and then that the system is broadcasting, and even battery charge/status.
I think this is an awsome idea, next stop is SparkFun to see if they have the parts. Of course the other search is to discover if someone else has done this. One of the keys would be "no subscription"
Wednesday, July 23, 2008
Flex and Ruby on Rails
Ok, this one is going to be short. I want to get a Ruby on Rails to produce Flex/Flash code. What I mean is that I should be able to, as part of the development cycle, create a rails project, create a model, and then when I go to create a view the result would spit out a flex code.
Visual Programming Language
On the rant of needing better development environments, see the last post, I realized that many people would benefit from a visual programming language, using icons and the like, myself included. I think it would be very cool if there was someway to visualize things like threads.
It seems that many people have tried this in the past but they always seem to get stuck at some point. Usually when you go down to the nity grity details. The other thing is that, what I've seen so far, suggests that these apps weren't beautiful. These tools really seem to need a great designer behind the scenes.
Don't get me wrong, I don't know how to do this just yet. It may actually require a brand new programming language, I don't know. I just think it would be very COOL!
It seems that many people have tried this in the past but they always seem to get stuck at some point. Usually when you go down to the nity grity details. The other thing is that, what I've seen so far, suggests that these apps weren't beautiful. These tools really seem to need a great designer behind the scenes.
Don't get me wrong, I don't know how to do this just yet. It may actually require a brand new programming language, I don't know. I just think it would be very COOL!
Active Development Environment
The active development environment, ADE, is the extension of the IDE. The idea is that the IDE is essentially what we've been doing for ever, more or less, in the development world. We write a text document, compile it, run it, see where things crash, and then go edit the doc. Wash, rinse, repeat. Of course there are advancements. Things like code completion and partial compile are awsome. I love these features! But the fact is that we're still editing the document, compiling, running.
This is old school my friends, very old school, and the problem is that we are now applying this same technology to new and emerging programming languages like Ruby and Python. These are languages that want to live in the shell. They can handle the immediate execution. Trying to force these interperted languages into the old model just feels WRONG.
What I want is a development environment that is essentially a shell, like irb, but smarter. If I define a class, I want that class to be captured. If I define a function, that function is captured. At some point I want to be able to work with all these saved functions/class/etc. When I say 'save' I actually mean that I want to manage them. Figure out what lives where and how.
So this is one of those ideas that has been bouncing around my head for sometime now. As a matter of fact I've actually attempted to implement this idea a few times. Thus far I haven't been able to get to where I need to be for this to work the way I want. I've been doing this in Java and I've started to wonder if this is the way to do it.
This is old school my friends, very old school, and the problem is that we are now applying this same technology to new and emerging programming languages like Ruby and Python. These are languages that want to live in the shell. They can handle the immediate execution. Trying to force these interperted languages into the old model just feels WRONG.
What I want is a development environment that is essentially a shell, like irb, but smarter. If I define a class, I want that class to be captured. If I define a function, that function is captured. At some point I want to be able to work with all these saved functions/class/etc. When I say 'save' I actually mean that I want to manage them. Figure out what lives where and how.
So this is one of those ideas that has been bouncing around my head for sometime now. As a matter of fact I've actually attempted to implement this idea a few times. Thus far I haven't been able to get to where I need to be for this to work the way I want. I've been doing this in Java and I've started to wonder if this is the way to do it.
Tuesday, July 22, 2008
Twitter & XMPP
I've noticed a lot of folks using Twitter. It's an interesting model of communicating between people and groups of people. The big thing that I've noticed is that it gets overwhelmed easily and goes down as a result. This of course leads to lots of unhappy people that are trying to twitter away with their friends.
What I find curios is that twitter hasn't attempted to build, or transitioned to, the XMPP infrastructure. The two technologies are very similar and XMPP is a known scalable platform that should be able to handle the loads that seem to be bringing down Twitter these days.
What I find curios is that twitter hasn't attempted to build, or transitioned to, the XMPP infrastructure. The two technologies are very similar and XMPP is a known scalable platform that should be able to handle the loads that seem to be bringing down Twitter these days.
The Hitchhiker's Guide to the World - Part 2
Ok, so I've been giving this idea a few more cycles. It seems very dueable. I chatted with a friend of mine, who is an expert users of Wikipedia data (he's done a bunch of work analyzing the Wikipedia dataset), and he suggested that it should be possible to pair down the Wikipedia data set to something quiet managable.
Wikipedia pictures are going to be a problem space wise. Initially I thought it would make sense just to toss out the pictures, ie no pictures, but I'm not sure that makes sense for every picture. There are some pictures that would be very useful and others that would just silly. The difficulty would be in coming up with the rules of how to pick which pictures to keep and which to toss. Perhaps for the first round I'll just toss all pictures and work out the rules later.
One thing I should point out, the Wikipedia data is only PART of the project. It's just one of the tools that this platform should have. Other tools include maps and GPS, image translation, customs database, etc.
I need to spin a few more cycles on this but it seems like a good idea and pottentially has some military applications. The military application are more in the augmentation of human inteligence. The more useful data a military person has on hand the better decisions they can make.
Wikipedia pictures are going to be a problem space wise. Initially I thought it would make sense just to toss out the pictures, ie no pictures, but I'm not sure that makes sense for every picture. There are some pictures that would be very useful and others that would just silly. The difficulty would be in coming up with the rules of how to pick which pictures to keep and which to toss. Perhaps for the first round I'll just toss all pictures and work out the rules later.
One thing I should point out, the Wikipedia data is only PART of the project. It's just one of the tools that this platform should have. Other tools include maps and GPS, image translation, customs database, etc.
I need to spin a few more cycles on this but it seems like a good idea and pottentially has some military applications. The military application are more in the augmentation of human inteligence. The more useful data a military person has on hand the better decisions they can make.
Wednesday, July 16, 2008
The Hitchhiker's Guide to the World
Ok, so the 'mobile translator' idea had me re-thinking about an idea that's bounced around my head for years now, especially since reading 'The Hitchhikers Guide to the Galaxy'. Many people have pursued this idea for year but it seem that we're closer to ever. Devices like the Nokia N810 and iPhone 3G seem to have most of the features you might need to make something like this happen. The other really neat thing that's happened is that the open source data needed to make this happen has become available.
The devices now have a reasonably large display at a reasonably high resolution. It's even touch sensative with an input mechanisim. The other important part is that they have a world wide connectivity solution, the iPhone 3G more then the Nokia N810. Finally, most of these devices now have the capability to store huge quantites of data (16+gb). One the data side, services like Wikipedia and OpenStreetMaps have a humongous amount of free data available to users.
The idea would be to create a multi-purpose application that is able to provide data to the regular traveler. This kind of data would include local weather, local currency exchange, news, maps, resturants, etc. Part of the data would have to live locally on the device, that why it's important to have so much space available on the device. The other part of the data would be brought from the net, that's why having net connectivity is important. This live or near live data would be pulled in from the net. For example, currency exchange and weather would be near live but resturants and maps can be less the realtime.
Ok so the question is what data would a user want: weather, traffic, resturants, gas stations, maps, directions, currency exchange, emergency services, embassy contact, hotel information, language translation. The is more but I can't seem to think of it right now :)
The devices now have a reasonably large display at a reasonably high resolution. It's even touch sensative with an input mechanisim. The other important part is that they have a world wide connectivity solution, the iPhone 3G more then the Nokia N810. Finally, most of these devices now have the capability to store huge quantites of data (16+gb). One the data side, services like Wikipedia and OpenStreetMaps have a humongous amount of free data available to users.
The idea would be to create a multi-purpose application that is able to provide data to the regular traveler. This kind of data would include local weather, local currency exchange, news, maps, resturants, etc. Part of the data would have to live locally on the device, that why it's important to have so much space available on the device. The other part of the data would be brought from the net, that's why having net connectivity is important. This live or near live data would be pulled in from the net. For example, currency exchange and weather would be near live but resturants and maps can be less the realtime.
Ok so the question is what data would a user want: weather, traffic, resturants, gas stations, maps, directions, currency exchange, emergency services, embassy contact, hotel information, language translation. The is more but I can't seem to think of it right now :)
Mobile translator
So I was thinking the other day, while traveling, how useful it would be to be able to translate street signs, menus, and signs when traveling in a foreign country. So one way to deal with this problem is to crack open a translation dictionary and look up each word. Of course that means a lot of looking up stuff and that can be a real pain in the ass. Not to mention really time consuming. Next way to deal with this problem is to use an electronic translation dictionary. This seems like a faster solution but you still have to type each word. So less time consuming but still chews up time.
Something I started to carry around when I go traveling to other countries is a GSM cell phone. It's really simple to get a local GSM SIM and the cost is usually really cheap compared to roaming charges with a US cell phone. More recently the phones I've been carrying around have become more powerful. Most have reasonably high resolution camers. My mind then connected the two and the thought came to me that you could take a picture of the item and translate it some how.
The rub with image translation is that it's computing intensive, both image to text and language to language. Even the hot new iPhone 3G doesn't appear to have enough horse power to do the translation in a reasonable rate. Next thought, ship the image of to a massive server to take care of. So what I finally came up with is a mixed device solution, using a cell phone and back end serves. A user takes their cell phone, sees something they want translated, they take a picture with a special translation app. The translation app ships the image to a backend server which does the OCR work (web service?). Once the image is translated to text the text is shiped to a translation service (web service?). The result translation is returned to the cell phone/pda.
This seems highly doable to me but just needs to have the pieces to be brought together. Another feature that came to mind was to give the translation service a hand by using the GPS, found in most cell phones, to tell it where you are, ie what is the origin language or languages.
Something I started to carry around when I go traveling to other countries is a GSM cell phone. It's really simple to get a local GSM SIM and the cost is usually really cheap compared to roaming charges with a US cell phone. More recently the phones I've been carrying around have become more powerful. Most have reasonably high resolution camers. My mind then connected the two and the thought came to me that you could take a picture of the item and translate it some how.
The rub with image translation is that it's computing intensive, both image to text and language to language. Even the hot new iPhone 3G doesn't appear to have enough horse power to do the translation in a reasonable rate. Next thought, ship the image of to a massive server to take care of. So what I finally came up with is a mixed device solution, using a cell phone and back end serves. A user takes their cell phone, sees something they want translated, they take a picture with a special translation app. The translation app ships the image to a backend server which does the OCR work (web service?). Once the image is translated to text the text is shiped to a translation service (web service?). The result translation is returned to the cell phone/pda.
This seems highly doable to me but just needs to have the pieces to be brought together. Another feature that came to mind was to give the translation service a hand by using the GPS, found in most cell phones, to tell it where you are, ie what is the origin language or languages.
Idea Crackers - 'cause "Idea Soup" was taken
So I've been trying to figure out a good way of keeping track of my ideas and share them with the world. This blog seems to be a good way. I'll start here and see where it takes me :)
Subscribe to:
Comments (Atom)