Well, this is not an agile post, but the happiest post ever: I was admitted to the M.S. in Computer Science program at San Francisco State University... This is something I dreamed since high-school and I believe God makes everything at His own time.... I will create a new blog about the life of a student-professional-student with life back to the academic world...
This will be fun... The ideas about a different Web 2.0 approach to my studies will be discussed on this new blog I'm thinking about just to address information about "flattening the world of academic research"... Will discuss much more there...
Friday, January 25, 2008
Monday, January 21, 2008
Never trust an IDE (shame on Eclipse's auto-completion feature)
Being agile sometimes brings us headaches that can make one lose hours of going through debugging log files, and sometimes without clues to the newly created puzzle. J2EE applications can make you feel that headache when we have to deal with applications and frameworks written without "proper" error-handling/logging.
My frustration started while finishing a personal application using the widely-used MVC framework Struts. I already had lots of "controlled" Actions and I was just adding a new Action to the play, but I was trying to be Agile :D I had downloaded the newest version of Eclipse 3.3 and imported my project accordingly. Then, I promptly just fired the "Create New Class" and extended the Action. That's it!!! (I thought), but my headache had just started after I trusted my loved IDE's auto-completion capabilities.
Before I describe what I had implemented on my execute method (the one we must override in order to have our application to "dance"), I found descriptions of which mistakes one can make in order to get the so-called blank/white page result after executing a strusts action. My application was also suffering from this well-known and poorly documented problem. According to a post at JMatrix, 2 are the possibilities of getting this blank page side-effect: If the Default Action is called instead of your Action class or if the input class on the action mapping is invalid. However, I'm writing this post just to add my 2 cents to the scope of this problem. Everything started when I trusted Eclipse to override the method signature below:
3. If you have NOT overridden the method execute, but overloaded it by having a different method signature. Be careful!!! It is HttpServletRequest and HttpServletResponse instead of ServletRequest and Servlet Response on the signature of the execute method. Never trust your loved IDE.
My frustration started while finishing a personal application using the widely-used MVC framework Struts. I already had lots of "controlled" Actions and I was just adding a new Action to the play, but I was trying to be Agile :D I had downloaded the newest version of Eclipse 3.3 and imported my project accordingly. Then, I promptly just fired the "Create New Class" and extended the Action. That's it!!! (I thought), but my headache had just started after I trusted my loved IDE's auto-completion capabilities.
Before I describe what I had implemented on my execute method (the one we must override in order to have our application to "dance"), I found descriptions of which mistakes one can make in order to get the so-called blank/white page result after executing a strusts action. My application was also suffering from this well-known and poorly documented problem. According to a post at JMatrix, 2 are the possibilities of getting this blank page side-effect: If the Default Action is called instead of your Action class or if the input class on the action mapping is invalid. However, I'm writing this post just to add my 2 cents to the scope of this problem. Everything started when I trusted Eclipse to override the method signature below:
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)This is the correct signature of the method execute, the one that will be executed by the Action Executor. However, after using the code-completion feature, I got the following signature:
/* (non-Javadoc)Being agile is all about trusting the tools that help you be productive, and this was just a moment of sadness. For me, the code was totally correct, but it was completed with a different signature. Although the action is loaded, nothing will be executed with this scenario. I spent a few hours with the clue of just having, among others, the following lines of the debugger output that proved that my Action class was being created and used by the Action executor class ActionCommandBase to execute the default "execute method".
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.ServletRequest, javax.servlet.ServletResponse)
*/
public ActionForward execute(ActionMapping mapping, ActionForm form, ServletRequest request, ServletResponse response)
throws Exception {
00:48:11,658 DEBUG CreateForumPosterAction:27 - Starting the create forum poster action...Any clues? The reason is that the method added was not overriding, but overloading the method execute from the class AbstractAction, which is just an empty method. Therefore, another reason to get the blank page from the execution of an Action struts class is when you trust an IDE such as Eclipse and hope that it will auto-complete the overridden method when you need. In other words, my 2 cents for JMatrix list is:
00:48:11,659 DEBUG AbstractCreateAction:93 - setting action to net.jsurfer.cryptonline.client.web.CreateForumPosterAction@192563a
00:48:11,660 DEBUG ActionCommandBase:49 - Executing org.apache.struts.chain.commands.servlet.ExecuteAction
3. If you have NOT overridden the method execute, but overloaded it by having a different method signature. Be careful!!! It is HttpServletRequest and HttpServletResponse instead of ServletRequest and Servlet Response on the signature of the execute method. Never trust your loved IDE.
Wednesday, January 16, 2008
Installing SourceForge Enterprise Edition VMWare-based on Ubuntu 7.10 Gutsy
What about managing your team with the first-class distributed software development tool? SourceForge Enterprise Edition allows project managers to better follow his/her teams of projects in a very convenient way. This post is just a hint on how to install SourceForge Enterprise Edition vmware player instance on Ubuntu 7.10...
First of all, I'm assuming that you have Ubuntu 7.10 installed as your own desktop, remote server, etc... For remote servers, I recommend one using NXServers and in order to access your server just use the NoMachine clients.
At this start point, you can download SourceForge Enterprise Edition 15 users from http://downloads.open.collab.net/sfee15.html. I had downloaded the file SourceForge-4_4-DL6.zip and unzipped its contents to my home directory by running
With VMWare up and running, go to Applications -> System Tools -> VMware Player. Then, click on "Open an existing Virtual Machine" and go to the directory where you unzipped the download of SourceForge-4_4-DL6.zip and select the only file for the SourceForge virtual machine... the VA software centOS server will begin to be loaded... We are almost there... :D
A lot of users (including me) are just reading the documentation available online, but for this installation the package includes the file "install_guide.pdf" with information about pre-installation instructions. I just needed to see which username and password allows me to make the first login to the SFEE server. When prompted, just use the following:
http://sfee.open.collab.net/sf-help/en/doc/User_Guide.pdf
First of all, I'm assuming that you have Ubuntu 7.10 installed as your own desktop, remote server, etc... For remote servers, I recommend one using NXServers and in order to access your server just use the NoMachine clients.
At this start point, you can download SourceForge Enterprise Edition 15 users from http://downloads.open.collab.net/sfee15.html. I had downloaded the file SourceForge-4_4-DL6.zip and unzipped its contents to my home directory by running
unzip SourceForge-4_4-DL6.zipWith the access to the GUI, you can proceed with the installation of the VMPlayer... Just follow the instructions on how to do so at Ubuntu Forum. It's mandatory the installation of the build-essential package!!! If the package update bugs you complaining about the Ubuntu CD from where you installed Ubuntu and you don't have access to one, just comment the first line at the /etc/apt/source.list file about the cdrom access... Finally, just complete the installation answering to all the questions by default, HAVING ONLY THE BRIDGED configuration. If asked, verify which interface has your IP address by running "ifconfig" and use it on the configuration (mine was eth1)... Once configured, it will display a welcome message from the VMware team...
With VMWare up and running, go to Applications -> System Tools -> VMware Player. Then, click on "Open an existing Virtual Machine" and go to the directory where you unzipped the download of SourceForge-4_4-DL6.zip and select the only file for the SourceForge virtual machine... the VA software centOS server will begin to be loaded... We are almost there... :D
A lot of users (including me) are just reading the documentation available online, but for this installation the package includes the file "install_guide.pdf" with information about pre-installation instructions. I just needed to see which username and password allows me to make the first login to the SFEE server. When prompted, just use the following:
username: rootAt this step, since it's the first time you're running the installation, you will need to change the root password. Follow the instructions and go to the IP/Network configuration. I chose to have a static ip address in order to be able to have other http servers on my network... After following the installation procedures, the SFEE server will be restarted and the configuration script will show the ip address and host name on how to access your SFEE installation from your local network. After that, you are all set and you just need to hit the virtual host address on the browser and follow the welcome instructions... The following is the username and password for the admin account
password: sourceforge
username: adminFor management of projects using SFEE, a good starting point is the following documentation:
password: admin
http://sfee.open.collab.net/sf-help/en/doc/User_Guide.pdf
Thursday, January 3, 2008
Axis2, Take 1... Developing POJO based Services
I spent most of the last year developing using AXIS 1.3 ... Today I'm really happy with AXIS2 because of the Plug-and-play capabilities when it comes to publishing services. I'm rewriting a J2EE application I wrote 6 years ago using the latest technologies, and of course publishing the Interfaces using AXIS2.
First of all, install Axis2 service on your application service of choice (Tomcat, in my case). Then, start with the development of the aar POJO service: specifying the methods of the Interface, then describing the type of the messages (in-out, in only, out only) on the services descriptor file. After running the WSDL generator, one can customize the design or integrate with your own schema catalog (in case one exists). The next step is just to publish the service on the Upload tool from the Axis2 application.
The POJO implementation might be really slow, since there are other possibilities on how to implement the services using different techniques such as the use of an XML Pullparser, thus, giving direct implementation performance improvements to the developer. I have the idea to measure the execution of different implementations of services, analyzing development and deployment strategies. Everything would just differ on the deployment automation scripts and patch generation.
First of all, install Axis2 service on your application service of choice (Tomcat, in my case). Then, start with the development of the aar POJO service: specifying the methods of the Interface, then describing the type of the messages (in-out, in only, out only) on the services descriptor file. After running the WSDL generator, one can customize the design or integrate with your own schema catalog (in case one exists). The next step is just to publish the service on the Upload tool from the Axis2 application.
The POJO implementation might be really slow, since there are other possibilities on how to implement the services using different techniques such as the use of an XML Pullparser, thus, giving direct implementation performance improvements to the developer. I have the idea to measure the execution of different implementations of services, analyzing development and deployment strategies. Everything would just differ on the deployment automation scripts and patch generation.
Monday, December 10, 2007
There's an encrypted message for you...
How would you show the chair of the Computer Science department where you are applying that you are really interested on the program? Although this was not Agile, I'd like to share my request...
-> My Encrypted Request
1277422-2847316-2693100-1261616-1-2938277-4074945-3827899-25393-2962151-4074945-1430646-1258669-59049-3200000
1629705-7776-3443146-3200000-1-2899021-530979-3827899-161051-371293-486282-2112274-39709-1398153-3080659-3658437
1044731-3282995-212373-1812438-3846068-1160197-530979-1430646-32-580174-1768792-1658195-1091755-2267810-1497451
3200000-4046644-32-1419857-573939-2041489-3647676-537178-48909-3125-1091755-32-3640644-1903585-1320821-2209028-1
4084101-32-3824505-1171281-2228976-59049-3200000-48414-4106401-2135263-2745785-857024-3734162-4072015-4084101
159491-2228557-3846068-1776204-2476099-59049-3200000-2812195-3910998-25393-4084101-2256068-7776-1430646-573939
161051-243-32-1-2556440-3783996-4084101-806332-248832-3853387-2644820-419895-3472022
-> Setting the private key
(N , D) = (4108901 , 1641293)
-> Decrypting each block
Ascii(x) = x ^ D mod N
Ascii(1277422) = 1277422 ^ 1641293 mod 4108901 = 1731
Ascii(2847316) = 2847316 ^ 1641293 mod 4108901 = 39200
Ascii(2693100) = 2693100 ^ 1641293 mod 4108901 = 13220
Ascii(1261616) = 1261616 ^ 1641293 mod 4108901 = 821
Ascii(1) = 1 ^ 1641293 mod 4108901 = 1
Ascii(2938277) = 2938277 ^ 1641293 mod 4108901 = 21820
Ascii(4074945) = 4074945 ^ 1641293 mod 4108901 = 1132
Ascii(3827899) = 3827899 ^ 1641293 mod 4108901 = 2162
Ascii(25393) = 25393 ^ 1641293 mod 4108901 = 1113
Ascii(2962151) = 2962151 ^ 1641293 mod 4108901 = 219820
Ascii(4074945) = 4074945 ^ 1641293 mod 4108901 = 1132
Ascii(1430646) = 1430646 ^ 1641293 mod 4108901 = 197
Ascii(1258669) = 1258669 ^ 1641293 mod 4108901 = 20020
Ascii(59049) = 59049 ^ 1641293 mod 4108901 = 9
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(1629705) = 1629705 ^ 1641293 mod 4108901 = 521
Ascii(7776) = 7776 ^ 1641293 mod 4108901 = 6
Ascii(3443146) = 3443146 ^ 1641293 mod 4108901 = 216
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(1) = 1 ^ 1641293 mod 4108901 = 1
Ascii(2899021) = 2899021 ^ 1641293 mod 4108901 = 200
Ascii(530979) = 530979 ^ 1641293 mod 4108901 = 132
Ascii(3827899) = 3827899 ^ 1641293 mod 4108901 = 2162
Ascii(161051) = 161051 ^ 1641293 mod 4108901 = 11
Ascii(371293) = 371293 ^ 1641293 mod 4108901 = 13
Ascii(486282) = 486282 ^ 1641293 mod 4108901 = 2216
Ascii(2112274) = 2112274 ^ 1641293 mod 4108901 = 20420
Ascii(39709) = 39709 ^ 1641293 mod 4108901 = 113
Ascii(1398153) = 1398153 ^ 1641293 mod 4108901 = 217
Ascii(3080659) = 3080659 ^ 1641293 mod 4108901 = 7183
Ascii(3658437) = 3658437 ^ 1641293 mod 4108901 = 13221
Ascii(1044731) = 1044731 ^ 1641293 mod 4108901 = 22
Ascii(3282995) = 3282995 ^ 1641293 mod 4108901 = 14211
Ascii(212373) = 212373 ^ 1641293 mod 4108901 = 2032
Ascii(1812438) = 1812438 ^ 1641293 mod 4108901 = 141
Ascii(3846068) = 3846068 ^ 1641293 mod 4108901 = 97
Ascii(1160197) = 1160197 ^ 1641293 mod 4108901 = 209
Ascii(530979) = 530979 ^ 1641293 mod 4108901 = 132
Ascii(1430646) = 1430646 ^ 1641293 mod 4108901 = 197
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(580174) = 580174 ^ 1641293 mod 4108901 = 161
Ascii(1768792) = 1768792 ^ 1641293 mod 4108901 = 3221
Ascii(1658195) = 1658195 ^ 1641293 mod 4108901 = 6204
Ascii(1091755) = 1091755 ^ 1641293 mod 4108901 = 201
Ascii(2267810) = 2267810 ^ 1641293 mod 4108901 = 1321
Ascii(1497451) = 1497451 ^ 1641293 mod 4108901 = 67211
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(4046644) = 4046644 ^ 1641293 mod 4108901 = 9212
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(1419857) = 1419857 ^ 1641293 mod 4108901 = 17
Ascii(573939) = 573939 ^ 1641293 mod 4108901 = 21620
Ascii(2041489) = 2041489 ^ 1641293 mod 4108901 = 121
Ascii(3647676) = 3647676 ^ 1641293 mod 4108901 = 413
Ascii(537178) = 537178 ^ 1641293 mod 4108901 = 2183
Ascii(48909) = 48909 ^ 1641293 mod 4108901 = 19920
Ascii(3125) = 3125 ^ 1641293 mod 4108901 = 5
Ascii(1091755) = 1091755 ^ 1641293 mod 4108901 = 201
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(3640644) = 3640644 ^ 1641293 mod 4108901 = 101
Ascii(1903585) = 1903585 ^ 1641293 mod 4108901 = 99
Ascii(1320821) = 1320821 ^ 1641293 mod 4108901 = 20113
Ascii(2209028) = 2209028 ^ 1641293 mod 4108901 = 220020
Ascii(1) = 1 ^ 1641293 mod 4108901 = 1
Ascii(4084101) = 4084101 ^ 1641293 mod 4108901 = 21
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(3824505) = 3824505 ^ 1641293 mod 4108901 = 1972
Ascii(1171281) = 1171281 ^ 1641293 mod 4108901 = 142
Ascii(2228976) = 2228976 ^ 1641293 mod 4108901 = 1620
Ascii(59049) = 59049 ^ 1641293 mod 4108901 = 9
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(48414) = 48414 ^ 1641293 mod 4108901 = 12102
Ascii(4106401) = 4106401 ^ 1641293 mod 4108901 = 1613
Ascii(2135263) = 2135263 ^ 1641293 mod 4108901 = 21972
Ascii(2745785) = 2745785 ^ 1641293 mod 4108901 = 16132
Ascii(857024) = 857024 ^ 1641293 mod 4108901 = 18319
Ascii(3734162) = 3734162 ^ 1641293 mod 4108901 = 72
Ascii(4072015) = 4072015 ^ 1641293 mod 4108901 = 1013
Ascii(4084101) = 4084101 ^ 1641293 mod 4108901 = 21
Ascii(159491) = 159491 ^ 1641293 mod 4108901 = 70
Ascii(2228557) = 2228557 ^ 1641293 mod 4108901 = 2141
Ascii(3846068) = 3846068 ^ 1641293 mod 4108901 = 97
Ascii(1776204) = 1776204 ^ 1641293 mod 4108901 = 210
Ascii(2476099) = 2476099 ^ 1641293 mod 4108901 = 19
Ascii(59049) = 59049 ^ 1641293 mod 4108901 = 9
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(2812195) = 2812195 ^ 1641293 mod 4108901 = 52151
Ascii(3910998) = 3910998 ^ 1641293 mod 4108901 = 992
Ascii(25393) = 25393 ^ 1641293 mod 4108901 = 1113
Ascii(4084101) = 4084101 ^ 1641293 mod 4108901 = 21
Ascii(2256068) = 2256068 ^ 1641293 mod 4108901 = 8321
Ascii(7776) = 7776 ^ 1641293 mod 4108901 = 6
Ascii(1430646) = 1430646 ^ 1641293 mod 4108901 = 197
Ascii(573939) = 573939 ^ 1641293 mod 4108901 = 21620
Ascii(161051) = 161051 ^ 1641293 mod 4108901 = 11
Ascii(243) = 243 ^ 1641293 mod 4108901 = 3
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(1) = 1 ^ 1641293 mod 4108901 = 1
Ascii(2556440) = 2556440 ^ 1641293 mod 4108901 = 852
Ascii(3783996) = 3783996 ^ 1641293 mod 4108901 = 10205
Ascii(4084101) = 4084101 ^ 1641293 mod 4108901 = 21
Ascii(806332) = 806332 ^ 1641293 mod 4108901 = 820
Ascii(248832) = 248832 ^ 1641293 mod 4108901 = 12
Ascii(3853387) = 3853387 ^ 1641293 mod 4108901 = 1421
Ascii(2644820) = 2644820 ^ 1641293 mod 4108901 = 520
Ascii(419895) = 419895 ^ 1641293 mod 4108901 = 52162
Ascii(3472022) = 3472022 ^ 1641293 mod 4108901 = 21133
-> Complete message in ASCII
17313920013220821121820113221621113219820113219720020920521621620120013221621113221
62042011321771831322122142112032141972091321972161322162042011321672112092122172162
01214132183199205201210199201132200201212197214216209201210216132197216132183197210
132170214197210199205215199211132183216197216201132185210205218201214215205216221133
-> Original Message
I'd love to be admitted to the MS program at the Computer Science department at San Francisco State University!
-> My Encrypted Request
1277422-2847316-2693100
1629705-7776-3443146-3200000-1
1044731-3282995-212373-1812438
3200000-4046644-32-1419857
4084101-32-3824505-1171281
159491-2228557-3846068-1776204
161051-243-32-1-2556440
-> Setting the private key
(N , D) = (4108901 , 1641293)
-> Decrypting each block
Ascii(x) = x ^ D mod N
Ascii(1277422) = 1277422 ^ 1641293 mod 4108901 = 1731
Ascii(2847316) = 2847316 ^ 1641293 mod 4108901 = 39200
Ascii(2693100) = 2693100 ^ 1641293 mod 4108901 = 13220
Ascii(1261616) = 1261616 ^ 1641293 mod 4108901 = 821
Ascii(1) = 1 ^ 1641293 mod 4108901 = 1
Ascii(2938277) = 2938277 ^ 1641293 mod 4108901 = 21820
Ascii(4074945) = 4074945 ^ 1641293 mod 4108901 = 1132
Ascii(3827899) = 3827899 ^ 1641293 mod 4108901 = 2162
Ascii(25393) = 25393 ^ 1641293 mod 4108901 = 1113
Ascii(2962151) = 2962151 ^ 1641293 mod 4108901 = 219820
Ascii(4074945) = 4074945 ^ 1641293 mod 4108901 = 1132
Ascii(1430646) = 1430646 ^ 1641293 mod 4108901 = 197
Ascii(1258669) = 1258669 ^ 1641293 mod 4108901 = 20020
Ascii(59049) = 59049 ^ 1641293 mod 4108901 = 9
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(1629705) = 1629705 ^ 1641293 mod 4108901 = 521
Ascii(7776) = 7776 ^ 1641293 mod 4108901 = 6
Ascii(3443146) = 3443146 ^ 1641293 mod 4108901 = 216
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(1) = 1 ^ 1641293 mod 4108901 = 1
Ascii(2899021) = 2899021 ^ 1641293 mod 4108901 = 200
Ascii(530979) = 530979 ^ 1641293 mod 4108901 = 132
Ascii(3827899) = 3827899 ^ 1641293 mod 4108901 = 2162
Ascii(161051) = 161051 ^ 1641293 mod 4108901 = 11
Ascii(371293) = 371293 ^ 1641293 mod 4108901 = 13
Ascii(486282) = 486282 ^ 1641293 mod 4108901 = 2216
Ascii(2112274) = 2112274 ^ 1641293 mod 4108901 = 20420
Ascii(39709) = 39709 ^ 1641293 mod 4108901 = 113
Ascii(1398153) = 1398153 ^ 1641293 mod 4108901 = 217
Ascii(3080659) = 3080659 ^ 1641293 mod 4108901 = 7183
Ascii(3658437) = 3658437 ^ 1641293 mod 4108901 = 13221
Ascii(1044731) = 1044731 ^ 1641293 mod 4108901 = 22
Ascii(3282995) = 3282995 ^ 1641293 mod 4108901 = 14211
Ascii(212373) = 212373 ^ 1641293 mod 4108901 = 2032
Ascii(1812438) = 1812438 ^ 1641293 mod 4108901 = 141
Ascii(3846068) = 3846068 ^ 1641293 mod 4108901 = 97
Ascii(1160197) = 1160197 ^ 1641293 mod 4108901 = 209
Ascii(530979) = 530979 ^ 1641293 mod 4108901 = 132
Ascii(1430646) = 1430646 ^ 1641293 mod 4108901 = 197
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(580174) = 580174 ^ 1641293 mod 4108901 = 161
Ascii(1768792) = 1768792 ^ 1641293 mod 4108901 = 3221
Ascii(1658195) = 1658195 ^ 1641293 mod 4108901 = 6204
Ascii(1091755) = 1091755 ^ 1641293 mod 4108901 = 201
Ascii(2267810) = 2267810 ^ 1641293 mod 4108901 = 1321
Ascii(1497451) = 1497451 ^ 1641293 mod 4108901 = 67211
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(4046644) = 4046644 ^ 1641293 mod 4108901 = 9212
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(1419857) = 1419857 ^ 1641293 mod 4108901 = 17
Ascii(573939) = 573939 ^ 1641293 mod 4108901 = 21620
Ascii(2041489) = 2041489 ^ 1641293 mod 4108901 = 121
Ascii(3647676) = 3647676 ^ 1641293 mod 4108901 = 413
Ascii(537178) = 537178 ^ 1641293 mod 4108901 = 2183
Ascii(48909) = 48909 ^ 1641293 mod 4108901 = 19920
Ascii(3125) = 3125 ^ 1641293 mod 4108901 = 5
Ascii(1091755) = 1091755 ^ 1641293 mod 4108901 = 201
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(3640644) = 3640644 ^ 1641293 mod 4108901 = 101
Ascii(1903585) = 1903585 ^ 1641293 mod 4108901 = 99
Ascii(1320821) = 1320821 ^ 1641293 mod 4108901 = 20113
Ascii(2209028) = 2209028 ^ 1641293 mod 4108901 = 220020
Ascii(1) = 1 ^ 1641293 mod 4108901 = 1
Ascii(4084101) = 4084101 ^ 1641293 mod 4108901 = 21
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(3824505) = 3824505 ^ 1641293 mod 4108901 = 1972
Ascii(1171281) = 1171281 ^ 1641293 mod 4108901 = 142
Ascii(2228976) = 2228976 ^ 1641293 mod 4108901 = 1620
Ascii(59049) = 59049 ^ 1641293 mod 4108901 = 9
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(48414) = 48414 ^ 1641293 mod 4108901 = 12102
Ascii(4106401) = 4106401 ^ 1641293 mod 4108901 = 1613
Ascii(2135263) = 2135263 ^ 1641293 mod 4108901 = 21972
Ascii(2745785) = 2745785 ^ 1641293 mod 4108901 = 16132
Ascii(857024) = 857024 ^ 1641293 mod 4108901 = 18319
Ascii(3734162) = 3734162 ^ 1641293 mod 4108901 = 72
Ascii(4072015) = 4072015 ^ 1641293 mod 4108901 = 1013
Ascii(4084101) = 4084101 ^ 1641293 mod 4108901 = 21
Ascii(159491) = 159491 ^ 1641293 mod 4108901 = 70
Ascii(2228557) = 2228557 ^ 1641293 mod 4108901 = 2141
Ascii(3846068) = 3846068 ^ 1641293 mod 4108901 = 97
Ascii(1776204) = 1776204 ^ 1641293 mod 4108901 = 210
Ascii(2476099) = 2476099 ^ 1641293 mod 4108901 = 19
Ascii(59049) = 59049 ^ 1641293 mod 4108901 = 9
Ascii(3200000) = 3200000 ^ 1641293 mod 4108901 = 20
Ascii(2812195) = 2812195 ^ 1641293 mod 4108901 = 52151
Ascii(3910998) = 3910998 ^ 1641293 mod 4108901 = 992
Ascii(25393) = 25393 ^ 1641293 mod 4108901 = 1113
Ascii(4084101) = 4084101 ^ 1641293 mod 4108901 = 21
Ascii(2256068) = 2256068 ^ 1641293 mod 4108901 = 8321
Ascii(7776) = 7776 ^ 1641293 mod 4108901 = 6
Ascii(1430646) = 1430646 ^ 1641293 mod 4108901 = 197
Ascii(573939) = 573939 ^ 1641293 mod 4108901 = 21620
Ascii(161051) = 161051 ^ 1641293 mod 4108901 = 11
Ascii(243) = 243 ^ 1641293 mod 4108901 = 3
Ascii(32) = 32 ^ 1641293 mod 4108901 = 2
Ascii(1) = 1 ^ 1641293 mod 4108901 = 1
Ascii(2556440) = 2556440 ^ 1641293 mod 4108901 = 852
Ascii(3783996) = 3783996 ^ 1641293 mod 4108901 = 10205
Ascii(4084101) = 4084101 ^ 1641293 mod 4108901 = 21
Ascii(806332) = 806332 ^ 1641293 mod 4108901 = 820
Ascii(248832) = 248832 ^ 1641293 mod 4108901 = 12
Ascii(3853387) = 3853387 ^ 1641293 mod 4108901 = 1421
Ascii(2644820) = 2644820 ^ 1641293 mod 4108901 = 520
Ascii(419895) = 419895 ^ 1641293 mod 4108901 = 52162
Ascii(3472022) = 3472022 ^ 1641293 mod 4108901 = 21133
-> Complete message in ASCII
1731392001322082112182011322162
6204201132177183132212214211203
0121413218319920520121019920113
1321702141972101992052151992111
-> Original Message
I'd love to be admitted to the MS program at the Computer Science department at San Francisco State University!
Wednesday, November 28, 2007
Starting over again...
Starting over again after having to quit CollabNet due to Visa regulations... However, nothing let me down and stop to do what I love to (I think I wrote the same thing on my last email to the company)...
Anyway, I'm trying to be agile today after talking to my brother Leandro and accepting the position of CTO, WOW... Well, at least I will direct the company in the perspective of research and development and educate his startup with a flat view of the world of Software Development... In this way, it has been a really long day, after setting up the company's infrastructure at GoogleApps (work for the CIO, anyone???)... I present to all of you Spry Software Factory, or just Spry Softwares, that will primarily be funded by services to Nokia...
http://www.sprysoftwares.com
The vision I have for this startup is to follow a mix of models, which includes Software Factory and Distributed Open-Source company. In this way, the imperatives to drive research and development will involve the following vertical markets:
Spent the day setting up the basic Google Apps for the company... The third-level domain names or Subdomains is not a great feature on Google, since one has to go to the Advanced features on the setup section and guess what? We are redirected to the place where our domain name was registered... In our case, eNom is the company, and everything has to be done there... But wait, after browsing for more than 2 hours I realized that the only way to link a given subdomain to a page is to create a domain URL frame instead a regular CNAME, which would point to the Google Apps server... It's a shame, because I believe it would be easier to just offer that from its interface... I bought the domain from google and I was expecting the full integration....
Anyway, this I will link this blog as http://marcello.sprysoftwares.com
Anyway, I'm trying to be agile today after talking to my brother Leandro and accepting the position of CTO, WOW... Well, at least I will direct the company in the perspective of research and development and educate his startup with a flat view of the world of Software Development... In this way, it has been a really long day, after setting up the company's infrastructure at GoogleApps (work for the CIO, anyone???)... I present to all of you Spry Software Factory, or just Spry Softwares, that will primarily be funded by services to Nokia...
http://www.sprysoftwares.com
The vision I have for this startup is to follow a mix of models, which includes Software Factory and Distributed Open-Source company. In this way, the imperatives to drive research and development will involve the following vertical markets:
- Mobile Software Development: primarily for the following platforms:
- Nokia's Maemo Linux: Leandro de Sales, the CEO, is about to defend his M.S. by contributing to the open-source world by implementing the DCCP protocol to the Linux kernel. Most solutions include maintenance of the Maemo platform and applications using UPnP;
- Google's Android: After the announcement of U$10 Millions, who doesn't want to develop for this rich platform that promises...? I will take this opportunity to work on my M.S. dissertation (still looking to be admitted in the Bay Area) and implement my personal vision of Active User Interfaces I suggested to Motorola in 2004, which unfortunately was rejected. However, I am happy to see the results of limitation (After iPhone, Razor died...) and also happy to see Google's efforts to transform the world again, following what most of the 3G/4G applications in Japan already do... I'm a big fan of the NTT DoCoMo!
- E-Commerce Internet Applications: I spent around a year and half developing osCommerce applications and I chose 2 applications to attack this imperative market:
- osCommerce Contributions: developed in PHP, this shopping cart solution represents the most successful application for small companies starting their operations online;
- KonaKart Open-Source Leadership: I will drive the open-source Java development of the free components of this application. It will include the development of Contributions in a way of Java Plug-ins.
- Virtualization: Transforming development teams with solutions of distributed software development and backup centers with the following technologies:
- Distributed VMWare: Create profiles of operating systems, save their specification and let your employees reuse them accordingly;
- CollabNet CUBiT: A highest level of control and customization for profiles, which includes the creation of online profiles based on Linux and Windows machines!
- Global, Agile, Distributed and Collaborative Development Process: The most important of all verticals is the change in current development process of companies willing to step ahead the old processes used by using a proven way to run a business:
- Subversion on Demand: Tracking changes from departments producing text-based artifacts through the use of Subversion, a version-control system which keeps track of every change you do;
- ALM Tools: Companies of any size can better manage their activities using a proven set of tools powered by Enterprise Application Life-cycle Management tools such as SourceForge Enterprise Edition, which includes tracking any activity of users from any department using Subversion on Demand technology;
- Changes on an Enterprise development culture with Agile Methodologies, which can be applicable from Engineering to Management teams, in order to identify its own collaborative way with the highest level of productivity;
Spent the day setting up the basic Google Apps for the company... The third-level domain names or Subdomains is not a great feature on Google, since one has to go to the Advanced features on the setup section and guess what? We are redirected to the place where our domain name was registered... In our case, eNom is the company, and everything has to be done there... But wait, after browsing for more than 2 hours I realized that the only way to link a given subdomain to a page is to create a domain URL frame instead a regular CNAME, which would point to the Google Apps server... It's a shame, because I believe it would be easier to just offer that from its interface... I bought the domain from google and I was expecting the full integration....
Anyway, this I will link this blog as http://marcello.sprysoftwares.com
Subscribe to:
Posts (Atom)