For two days at work, everyone was crunching at their projects, trying to get as much of it done as humanly possible in that short period of time. I stayed pretty late those days, and even worked a little more on the weekend after, as some others did too.
Some of the projects included creating apps on top of the application framework we have on our site (which is kinda like building a facebook app - You are hosted in an iframe on the site and can work against the site's api).
I created a 'polyvore' like app - It lets you create a collage of products on a canvas for others to see (mainly intended for women's use).
Some other cool apps were games like "The price is right" for products on our site, or an item tagging compatibility game where you need to tag items identically with a partner to score points.
There were some actual features developed for the site, like a 'GeoFeed' - The capability of presenting a users newsfeed on a map, with relevant feeds in his area. Some people took the time to install or implement tools that will help us get our job done better daily, like a cool dynamic dashboard that can contain almost any information we want, or installing an IRC server that will give us a better communication channel for development issues than email.
Whatever the project was - I think it was fun for everyone working on them, and very thoughtful of the company to hold such an event...
Many people think that maintaining a blog is a lot of work. I think saying that is like saying reading the paper is a lot of work - You need to go out, buy it, free some time and actually read it. ...But that's not the reality of it, you just grab it during some breaks you have during the day, and read a little...
No commitment, no strings attached and nothing happens if you don't finish the article you started...
Just start one, and whenever you have something on your mind - something new you learned, something you feel like expressing, then just jot it down.
Now, when there are so many easy to use and free tools to get the job done, it should be happening 100 times more than it actually is!...
Just write it for yourself. If someone else happens to learn from it, or connect to it in any way, well, then that's just an added bonus.
Even if you only ever have one or two good posts, it's worth having them out there for others to read, but that should never be what it's about.
Don't believe everything you read in other blogs, and don't think that every blog is written by some expert.
Read a lot of blogs yourself, and comment when you feel like you have something to say on the matter.
People don't start reading your blog just because you posted something. They'll read it because they were looking for something that you posted about. That might happen today, maybe tomorrow and maybe only in 3 years from now...
These past couple of days I started writing a utility program that will invoke some UI tests against a certain website of my choice. Obviously, I needed to write tests for the functionality of this utility, so I will be sure that it works.
I wanted the tests to be as real as possible, and so I decided to run them against a real site, like google (could've been any other site, this doesn't really matter for the sake of the story).
The tests worked great, but then I realized that they could easily be broken, with no connection to my work - No one promises me that google's page structure (or anything I want to test) will always stay the same, and I don't even know which tests i'll want to add to it in the future, and if I'll have all the resources on the site of my choice.
At first I configured the site on IIS locally and this was great, but then I started thinking another step forward, and realized I have another problem - I want someone else to be able to download the source code, and run the tests immediately without having to create a local website and going through all the proper configurations.
Then, I created a class called 'DevelopmentServer' responsible for loading the asp.net development server, and shutting it down at the end :
The port number and the library paths are just hard coded for the sake of the example. It makes more sense to put them in some configuration file of your choice.
(Note: You might have to change the path to the file WebDev.WebServer40.exe which is the binary of the development server, according to the version you have. The earlier version of this file is called WebDev.WebServer20.exe)
Finally, I just created an instance of this class upon FixtureSetUp, and disposed of it on FixtureTearDown.
As part of some code I was writing recently, At some point my app needed to trigger some other command line utility. I did this easily, using the Process class like this :
This was working great, with one exception - Sometimes the process was throwing an error, causing the console window to close immediately, and I didn't have time to view this error.
I knew that you can tell there was an error by the process's exit code (myProcess.ExitCode), but while debugging it was important to know what error was happening and actually see the output of this process.
Digging a little into the Process class, I easily found that you can redirect the process's output elsewhere. You just need to add :
myProcess.BeginOutputReadLine(); // without this, the OutputDataReceived event won't ever be triggered
That's it! Now i was getting all I needed from the running process, and it was much easier to find the problem this way. :)
This is a headless browser, that can receive javascript to do almost anything you would want from a regular browser, just without rendering anything to the screen.
This could be really useful for tasks like running ui tests on a project you created, or crawling a set of web pages looking for something.
There's a great site I know of that has a ton of great ebooks ready to download, but the problem is that they show you only 2 results on each page, and the search never finds anything!
Realizing that this site has a very simple url structure (e.g.: website/page/#), I just created a quick javascript file, telling phantomjs to go through the first 50 pages and search for a list of keywords that interest me. If i find something interesting, it saves the name of the book along with the page link into a text file so i can download them all later. :)
I hid the real website name from the script for obvious reasons. This technique could be useful for a variety of things, but you should check first about legality issues.
I also added an interval of 3 seconds between each website crawl. Another precaution from putting too much load on their site.
In order to use this script, or something like it, just go to the phantomjs homepage, download it, and run this at the command line :
Yes, this sounds like a religious statement (just like saying "i'm converting to christianity, judaism or islam") because it is!
At my work, we have a main svn repository, and we used to all use subversion (with Tortoise SVN and ankhSvn for VS compatibility). This was all great, until one day, some people decided that git is so much better than svn and they started convincing the others to try it out. So some of us did (or more accurately, attempted to try it out) by installing git extensions. In case you're not familiar, git extensions is a windows gui for git that is extendable so there's a plugin called git-svn that allows you to work git-based while actually having a svn server in the background. I went along and did just the same a couple of weeks ago. I also hosted a personal project on github to get the feeling of working with a real git repository (and not just using git-svn).
If i try to look back on it, I don't really remember the same people that are fans of git complaining about using svn the way they "claim" to have been complaining about it now. I think their more in love with the "coolness" of using git, since it seems like the cooler trend now-a-days.
Github has become so popular lately, and not for nothing - Their website is really easy and comfortable to use, and they have great tools for socializing and communicating on distributed projects over the internet. With that said, if they were hosting svn as well, I don't think it would be that big a difference.
All in all, git is great, but has it's share of problems. Svn has it's totally different share of problems as well. If there's a really good reason for me convincing you to start using git, it's because I truly believe that great developers should be well aware of the advantages and disadvantages each tool set gives you and that it's always good learning to use a new tool every once in a while. That's the only way to make the decision on which tools are best for you or your project.
Git and SVN are completely different in how they work, and it's really interesting to dig deep in to..
Here's a great post I read a while ago, that explains it really good : Understanding Distributed Version Control Systems
A year ago, which was before I starting work at Sears, they had a 2-day 'dojo'. Everyone in the company grouped into teams and worked on projects that interested them the most. These projects weren't necessarily connected to what we do as a company, but just projects that we want to do for fun, and some of them are actually being used by people in the company till this day!
Until this day I am still hearing about how much fun it was, and how people are waiting for another event like the dojo.
The time has finally come, and in about a month we are having another event just like this. This time it is a 4 day hackathon, which is supposed to be about building applications on top of our platform for our site (www.shopyourway.com) or about building internal tools that will help us in the process of creation in the future. We are already talking about how we're going to build the teams and what apps we're going to build and all the buzz around the event is really exciting... I love it when we have a chance to express ourselves in a little more freely manner then usual, and I think this is essential in developing the people you work with in so many ways! :)
I thought I'd just post here some articles about different hackathons in some other cool companies around the globe :
A couple of weeks ago some colleagues at work showed me this nice puzzle game called "Move the Box". I've seen dozens of these kinds of puzzle games in different variations, and as usual, I got hooked on it for a while.
I got stuck on a level I couldn't pass a couple of days ago, and this got my programming head thinking...
Hmmm... The board is only 6 by 7 tiles, and the levels only have up to 3 moves maximum... This shouldn't take too long for my computer to brute force through all the levels... :)
It works good on the puzzles i tested it on, which include puzzles with 1, 2 and 3 possible moves to the solution. The annoying part is that you have to enter the whole map of the level you want in a two dimensional array, which can take a long time. Then, all you have to do is tell it how many moves it gets, and hit F5!
I put the code up on google code's project hosting if you wanna take a look, but this should come with a disclaimer -
The code is really ugly and hacky! This is only because it is a 'coding for fun' project at home, for something that will never reach any kind of production. The only thing that was important to me at the time coding this was the fact that it will work. I don't see myself using this ever again.
With that said, the logic of the board was still coded using classic TDD. It just seemed logical doing it that way, so it even has some cool tests.
...and if you're wondering, the answer is "yes" - This was a stupid idea, since I basically took all the fun out of playing this game for me! :)
Ever since I started programming, this question has been bugging me. Now, I am trying to reflect on it from a different angle and I'm trying to understand what this even means to me and if in fact I am a "good enough programmer".
One of the most important things I learned a couple of years ago (from my team leader at the time), was that you can't define a goal without having a well-defined system to measure the success of reaching it. So, I must first define what being 'good enough' means to me.
I started programming when I was about 12 years old (around the year 2000). It was building small applications for my first PC in Visual Basic for a short period, and about a year after that I started building websites using PHP and MySQL. Back in the day, I remember myself learning a lot from some books I ordered from amazon and reading easy-to-understand tutorials on the internet. I think at the time I was pretty much a script kiddie. A lot of the sites I built were from tutorials on the internet, and when I ran into problems I would run straight to the internet forums and wait for someone to help me out. I looked up to the ones in the forums answering my questions and publishing all the open source javascript/php components I was using freely, when sometimes I didn't even understand how they worked.
What I remember clearly from that period was wanting to be as good as those 'guys' on the internet - the ones answering my questions and publishing open source. I wanted to be another success story like the guys from Mirabilis or other companies at the time I was reading about during the dot-com bubble period.
After a while, I felt like I had a lot of knowledge about PHP and MySQL (boy, was I wrong at the time), and I started building ecommerce websites as a freelancer. I built some nice websites (which some of are running till this date without any need of maintenance) and I felt like I was on top of the world. I was just waiting to finish high-school and make a career out of my favorite hobby!
After high school I served in the Air Force (mandatory in Israel) for 3 and a half years, 2 of those years as a computer programmer. This was the first time working on a team with other developers. Some of these developers had fancy college degrees and some of them had a couple more years of experience than I did. This blew my mind away! All of a sudden I felt like I met a new species of programmers I didn't know before. It seemed like these guys didn't only know how to program but they had a deep sense of knowledge of what their code means and how it was affecting the CPU. They all had their own blogs and every week one of them would present a lecture, talking about something new and teaching the team about new technologies.
I was totally blown away by this, and this convinced me that I wasn't even close to where I wanna be as a programmer...
I started reading a shit load of programming books, subscribing to some blogs on the internet and started diving into some leading open source code projects that were popular at the time. I even started a blog on my own as a way of learning more myself. During this period I learned so much and looking back at it, I would've never reached the amount of knowledge I know today without working with other people better than me (just a side note to others). By the end of those two years, I even managed to do some lectures myself and I think in some of them I got to teach others something new.
My first 'real' job was working for an Israeli credit card company. At first I felt intimidated by this, since I didn't know if I gained enough experience to be working in a big company, so I continued doing what I learned to do. Learn, learn and learn! I continued reading a lot of blogs and learning as much as I can, so I can be as good as the best at my current workplace. That didn't take long and I became one of the best there. I soon became bored and started looking for a new job...
I interviewed at a couple of places but only had a connection with one of them. (I wrote about this in a previous post : A new direction) This is Sears Israel (SHC), which has been my current workplace for the past 6-7 months. Not surprisingly, here I met programmers that are even better than I ever met before, and immediately wanted to go in their footsteps.
I could go on about how I continued learning as much as I can, but I think you get the point (and looking back at how much I wrote, I doubt anyone would read this whole post!)...
So now I look back at that feeling I had when I first started out programming, not knowing how good I wanted to be, just knowing I want to be better, and I think today I can say that I feel almost the same way. A couple of times already, I tried to define goals as to 'how good' I want to be, but these definitions never hold, since there are always new technologies out there to conquer and more programming languages to learn. The second I feel like I reached that point, I just find something new I want to learn and think I'm not good enough since I don't know that yet...
This is probably one of the reasons I am still in this field of work. The challenges are never over, and your work is never complete.
Today, I can appreciate the fact that I know that I am working amongst some of the more talented programmers in Israel.
I know I'm not the best, but I am still striving to get there! I still don't know what being the best means, and if I'll ever get there, but I do know that I'm enjoying the whole process. I know as a fact I am getting better all the time and I know that just the fact of wanting to be better and doing something about it makes me better than most.
I know I am a whole lot better than I used to be just a couple of years ago, and I'm pretty sure that in a couple of years from today I will be able to say the same again. This thought gives me some peace :) and is VERY satisfying by itself!
Part of the reason I am writing this post is to be a message to myself and to others - You are not the best (this goes for 99.99% of potential readers), but (and this is a big 'but') you should always strive to be the best. Keep reading, learning and programming as much as you can and maybe one day you will be. Doing this will keep you in a good position and on the way to getting there.
When managing a big web project, you might find yourself ending up with a big master page, that has a bunch of centralized code client side logic, like includes. What I mean by 'includes', is the part of the code where you spit out all the declarations for js and css files. I got to this stage many times by myself, and i've seen it happen at my various work places as well.
This usually ends up to some big nasty chunk of code that looks like this (and this is a relatively small example of what i mean...) :
For starters, there's so much similar text here, that typing it all up should've ringed a huge bell for us, screaming "THIS IS WRONG!!".
The clutter of text here, bothers us from seeing what's really important here, and all that is, is the files being included here.
The main reason for this is because we don't think of client side code as 'actual' code. This leads to us forgetting about DRYing up our code. The equivalent of this in server side code would be to copy the whole body of a certain method a dozen times, and just changing one parameter between different versions. If this were server code, we would've easily spotted the code duplication, and extracted this to a method that receives a parameter and saved a lot of typing, and kept the maintainability of the code.
All we need to do is introduce a small helper method that will print this again and again for us. We can do this on the client and on the server. In this case, I would go with doing this on the client, just because this piece of code will probably only be useful for us in this specific context.
I've already created quite a few jQuery plugins in the past, at work, and for personal use, and in many of them there are certain parts of code that always tend to repeat themselves.
One of these parts of code has to do with element positioning calculations relative to another element.
For example, when creating a plugin for a drop-down menu, or a tooltip, you can't avoid having a nasty piece of code in there, that all it does is calculate the element's position relative to the element we clicked on or hovered above.
I don't think there's any need for me to post an example of this, you probably know what I mean. This is usually the least most maintainable part of code in the plugin and the least easy to understand.
I finally decided to extract this ugly piece of code into a nice jQuery plugin that will hold all the dirty work calculations, and will leave you with a nice clean and understandable piece of code inside your plugin.
At the project page you will find more sample usages, usage explanations, the source code and a minified version.
I think about two years ago I read about the FireSheep firefox plugin that allows you to hijack any user's account to many different sites (Facebook, flickr, twitter, etc.) that is surfing on the same wifi connection that you are using. This can be extremely brutal to use in any coffee shop, hotel, airport, just sitting outside someone's house stalking them, whatever...
The point is, the person who created this, Eric Butler, didn't do this as a hacking tool, but as a wake-up call to all the sites that aren't encrypting there connection via SSL, and a lot of them didn't even change that since...
The second I read about this, I just couldn't stop thinking about what a dangerous tool this can become. Imagine this - Someone expands this tool to send all the currently active session cookies in the current wifi network to an online database, and now all the active sessions from all the firesheep users are shared worldwide. This means that you don't even have to be in the same wifi network as someone else to hijack their account. All you need is for someone else to be there while you're in the comfort of your own home... Isn't the internet a beautiful thing ??? :)
Two years (maybe more) later, and I'm happy to see that no one did this yet, but I am still very afraid of the day someone will!
I looked at firesheep code a little just out of pure curiosity, but never even downloaded it or tried it myself. I'm not a hacker and not interested in becoming one. The one thing I am concerned about here is my own personal security, so I am still hoping that these sites will improve the security for the sake of their users. Unfortunately, sometimes the only thing that speeds up the process is a lunatic taking advantage of the current situation.
When you're working with a big team of developers and a nice Build Server, a lot of times you rather work on a separate feature branch not to break the build while committing. This is very comfortable since you have your own "work zone" and don't bother anybody else, nor have to worry about breaking the build until you're done with your feature and ready to reintegrate to the trunk (or your main working branch).
It's not always easy dealing with all the conflicts when reintegrating your branch, and sometimes this can lead to problems. One of the main problems we ran into a couple of times recently at my work place while doing this process was that while reintegrating, we missed some new files that were added to the project while dealing with the csproj file conflicts.
This means we had new files added to the project, and were in the project directory, but not in the '.csproj' file. This might be a class that is referenced throughout the project, which in this case you're lucky and the project won't compile, which will immediately let you know there was a problem. But if you're not lucky, this will be a controller class file, or an 'aspx' file, and leaving it out will never cause a problem for the build server (if your project isn't 100% covered with tests - a totally different subject for a whole new post!).
That's exactly what I recently did, and now every time this happens the build server will fail, with a nice message that shows you all the files you left out!
All it does is search the project folder for all .cs and .aspx files, and then dissects the csproj file (which is just a big xml file) to find all the file references.
The code I posted just checks for cs/aspx files, but you can easily add functionality for js, css, html and any other file type you like...
I'm taking a university course in Java this semester, so I've been recently writing a lot of Java and as an IDE using IntelliJ (community edition) by JetBrains a lot. As a .net guy, mostly, I'm used to Visual Studio with ReSharper 6 and I remember so many keyboard shortcuts by heart which make my coding work so productive!
So you can guess how hard it is for someone like me, doing the transition to a different IDE, and not having ANY of the shortcuts you're used to. I tried studying some of the intelliJ shortcuts but it just got too annoying, and I finally decided to take the time and set ALL of the IntelliJ shortcuts to the same VS shortcuts once and for all. While I did that, I ran into a nice surprise - The brilliant guys at JetBrains were one step ahead of me the whole time, and have already added a VS keymap option in their settings panel!!!
A couple of months ago Microsoft published the Roslyn CTP which gives us an inside view on the Compilers view to our code. This also comes with project templates for creating CodeIssues and CodeActions (These are code suggestiongs/actions that are available to the coder in the IDE).
Since I read about this it interested me a little, and wanted to play around with this. Since I've been programming in java at home lately due to a course i'm taking at the university, I realized that one of the nice features that IntelliJ has is that it gives you suggestions on spelling mistakes you made on variable names (because this is one of the most annoying things i see in code and i truly believe makes it harder to maintain), so I thought i'd try to implement this in VS as an extension.
Split each variable name into separate words (most variables, at least when I write code looks like this "var myReceivedFilesList" so i separate them by case) :
I put the code up on google code so you can take a look at it, and who knows, maybe even contribute to it... :)
I don't know if this is production-worthy code, I didn't even check performance or if it slows down the IDE. This was just a small learning experience for me.
Here are some radio shows that have invited me to be interviewed on their show. I will post confirmed dates as they become available.
I am the schedule coordinator for the "Psychic Wisdom with David James Radio Hour", Wednesday evenings 9:00 pm, EST on Blog Talk Radio. David is quite interested in interviewing a representative to discuss the organization's mission and site. Mr. James has and does interview metaphysical professionals in all genre/theory/beliefs on a weekly basis. Past guests include Giorgio Tsoukalos, Dr. Blackburn Losey, Marie D. Jones, Jeff Belanger, Jackie Barrett, Jason Miller, and Stan Romanek, to name just a very few.
The show is an hour in duration with a few commercial breaks. David has a strong global audience and listeners call in live with their questions regarding the subject at hand. There is no compensation, but there is a great deal of advertising.
Well, it would be nice if he posted the actual dates, times, and links to the radio show's web site so we can listen in!
Well I accepted the December 9 date with the "Psychic Wisdom with David James Radio Hour". So the set time and date for that is:
As to the "Sounds Reasonable" show at WHRW 90.5 fm in Binghamton, New York, that may come in short notice, but it's still being arranged.
Join internationally known psychic, David James to discuss metaphysical topics and interests. David is happy to bring SCEPCOP - The Scientific Committee to Evaluate PseudoSkeptical Criticism of the Paranormal the show. SCEPCOP is the web's hottest organization that debunks the paranormal/metaphysical skeptics and their methodology! An interesting concept to be sure! From the SCEPCOP site : SCEPCOP is the 1st Coalition of Paranormal Researchers, Investigators, Writers and Intellectuals united to counter and expose the PseudoSkepticism movement for their fallacies, religious fanaticism, unscientific behavior, misinformation, denial, suppression, bigotry and ridicule toward all data, experience or science that challenges orthodoxy or does not fit into a materialistic reductionist paradigm. We do not support every quack claim out there, but advocate true skepticism, proper application of the Scientific Method, objectivity and unbiased open inquiry toward all paranormal and unconventional data, experience and science. We are the world's first counter-pseudoskeptic movement providing resources, articles, books, videos and an online community. For an personal reading go to www.psychic-wisdom.net to book your reading now with David James
Well I just completed the interview. It will be archived on there soon. When it does I'll let you know.
All the people who called in though, wanted to get psychic readings, not talk about SCEPCOP or skeptics. lol. I was kind of wondering if some of you might call in. lol
Scepcop wrote: Well I just completed the interview. It will be archived on there soon. When it does I'll let you know.
I was thinking of calling but I had a few technical difficulties with their site and got booted off 4 times and I couldn't find much info on the phone number. I was leery that it was a major toll as everyone seemed to have a UK accent.
I also agree with you getting your main points across and yes, it was rather scattered. I have to listen again when they get the archive up.
I listened to the radio show!!! Below are the notes I took. Quotations are from Scepcop unless otherwise noted. Also, please note that they may not be word for word as I was typing as I was listening, but if I don’t have the general statement correct, please let me know so I can correct. My rebuttal, if any, will be after the quote.
“Pharmaceuticals have killed many more people that alternative medicine.” Curious, how many more people have been helped by alternative medicine than pharmaceuticals?
“Skeptics don’t criticize the war in Iraq.” How do you know they don’t? Even if they don’t, what does that have to do with pseudo-skeptics and the paranormal? Is it because they don’t believe in your conspiracy theories? What do conspiracy theories have to do with the war in Iraq? I challenge you to show me anyone who agrees with everything the government says and does. Not a valid statement on Winston’s part I don’t believe.
“Skeptics suspend judgment, but these people do nothing of the sort.” Are you saying we should all believe in the paranormal regardless of the questionable experiments and experiments that can’t be replicated as well as lack of solid proof put forth by those who support it? Should we all just sit around and say “I don’t know?”
“Skeptics are very judgmental and don’t even believe the paranormal is possible.” Wrong, Scepcop. You name Sherman, Randi, etc. as pseudo-skeptics. Please show me where they have said that the paranormal is impossible. I’ll be waiting for this reply.
“Rejects data that doesn’t fit.” No, they reject data that can’t be replicated or was obtained through invalid experimentation.
“Skeptics are very anti-paranormal.” Yes, many of us are. Primarily because people gt hurt both financially and emotionally.
“Skeptics will never be critical of the government no matter how many people are killed.” See my above statement on the war in Iraq.
“ESP and telepathy is pretty much a proven phenomenon.” Really? What data do you have to support this? I’ll be waiting for this response as well.
“Radin, Sheldrake, and Schwartz say skeptics are not interested in evidence.” Wrong again. They are, they just want to see solid evidence and not evidence that can’t be replicated.
“Radin says that a lot of scientists, possibly even the majority of them, believe in ESP.” Really? How does he know that? Using the word “possibly” implies that he doesn’t know for sure and that he’s either guessing or has wishful thinking.
“Few colleges support parapsychology departments. Schwartz is one of about 5.” Gee, wonder if there is a reason most colleges don’t support it?
“Several studies show the more educated you are, the more you believe in the paranormal and pseudoskeptcs haven’t been able to explain this away because they want to believe the opposite.” To put it simply, wrong again! Feel free to review this to find a listing of several studies that conflict with each other. Results, there appears to be no correlation, but nice try.
“Skeptics are afraid of the unknown and don’t ask questions of an exploratory nature.” Matter of opinion. I’m not afraid of the unknown at all,
“Both sides use ad hominine attacks and ridicule and discredit and I try to stay away from that. Instead, I stick with the evidence, the logic, and the common sense and the science and everything.” First statement I’ll agree with. The second statement I don’t agree with at all.
“Established the scientific community, I mean the scientific committee to evaluate the paranormal. Try to be more serious, professional, and more level-headed.” Should I go back and show you some of the comments you have made about me? Many of your posts, especially in the conspiracy threads are about as professional as, well, perhaps I shouldn’t say it since it would be “unprofessional.” Do you know if your own website is about a scientific community or a scientific committee?
“Shermer and Randi never say “maybe I’m wrong” and are much more opinionated in their stances.” If I had the time, I’m sure I can find both of them saying that perhaps they are wrong. Yes, they are opinionated in their stances. Aren’t you? After all, you wrote a treatise and started this web site because you have an opinion you want to share.
“We have a caller from area code 347. Do you have a question for tonight’s guest?” Caller: “Uhh, no, not really.” (Sorry, had to throw that in there as it tickled me. In the end, none of the callers wanted to ask Winston a question)
Some rambling about feeling whole on the inside. Couldn’t keep up with what he was trying to say so perhaps you could clarify here about what you were talking about feeling “whole” inside.
David: “What’s your personal view of psychics?” Winston: “I believe that there is some real phenomenon going on with certain psychic abilities like ESP and clairvoyance…and I have had some experiences but it doesn’t seem to be very controllable.” Okay, that’s a valid opinion.