Channels or categories? - expressionengine

I've exported about 2000 forum posts (split between 9 forum categories), each with up to 10 replies.
I'm importing them as channel entries and comments. Would it be best to use a single channel and assign a category to each entry, or have a channel for each old forum category?
Thanks for any opinions.
Best wishes
Lee

Setting them up as a single Channel would probably give you a little more flexibility moving forward with Categories. If you break them down into their own separate Channels moving Entries around will be tougher. Plus it's easier to setup Categories (and you can setup member groups that you can give access to if you had others helping you manage these) and WAY easier to move entries around. I know that forums see visitors posting in wrong sections all the time. With the Category system you could move them around as needed. Gives you a LOT more flexibility in my mind.
I hope that helps!

I would definitely go with a single channel, since moving an entry to another category (and therefor another forum ) only takes one click, while having to move it to another channel is a lot more difficult.

Related

Open multiple positions in Backtrader

Does someone know if it's possible to open multiple positions with only a single data feed? I am trying to do a second buy whilst in a position, which doesn't seem to be possible.
Nobody seems to adress this issue. Does anyone have any experience with Backtrader and have any input?
If you are just trying to buy more stock to add to your position, then yes, you should be able to do this and if you cannot recheck your strategy code in next.
If you are trying to track two separate positions of the same data...
One cannot have two separate positions in the same data feed. You may trade additional positions if you like but they will be combined in Backtrader. Even if you use two strategies you will still have one combined broker.
The reason for this is to simulate as near as possible real world conditions. If you have a brokerage account you most likely would have just one postion. (I know there are exceptions)
One solution would be to track your trading manually in a dictionary trades that result from different signals/sub-strategies. It's a bit more tedious to develop but very doable.

Need ideas for rewarding the users of a wiki

I need ideas as to how best reward users of a wiki to make them motivated to keep contributing in a constructive manner. Articles can be upvoted, so the thought is to reward the contributors based on how much they have contributed to a specific article as well as how many upvotes it has gotten. The idea so far is to use a system of rewarding points to those who wrote the article ,and points from the amount of bytes the user have generated by editing articles.
The immediate problems i see is how to correctly assess when to give points in situations such as when a user edits parts of an article that has already been edited before. When a user edits for the sake of correcting misspellings(an example is a user who edits a single word), whether this should give points as i don’t see how the backend would distinct between a user correcting a mistake in spelling or farming points by making small changes here and there.
There is also the issue with how to manage the byte contribution point system with regards to how to handle a situation when a user’s contribution have been overridden by an edit, if they should get to keep their points from contributing bytes now that their original piece of text is gone.
The intention is to make the user feel rewarded for their work without making the reward system too competitive(making them focus more on generating points rather than producing content of value).
Give the major concern appears to be avoiding low value edits you could cap the amount per day and edits per article. For example instead of a user being able to apply multiple edits to a page one word at a time you make it so they are only rewarded for editing a page once a day. Additional edits would give them no additional points however would still be accepted. It doesn't have to be a page either you could use paragraph or whatever level of granularity works for the content. The most important thing is to track all of this over time and do spot checks on whether the top users are indeed the ones that have contributed value according to whatever metric you decide is important.
User always try and game any points system so whatever you choose I would make sure to track enough information so that you can change your algorithm in the future and understand how it will work.

Creating a N:1 Relationship on Order Product Entity

I am trying to create a N:1 relationship off another entity to Order Product. It is not an option in the pick list. I then tried to go to Order Product and create a 1:N relationship and it also does not allow it.
I am sure this is by design from Microsoft, but is there a way to achive this? I perfer not to to a 1:N or N:N as a work around since it will create grids on the form (and that does not make much sense from a UI perspective when there will only be one record).
Thank for the help!!!!
I am going to add a single line of text field and format it as a url. Then link it to the related entity by dynamically populating a URL to the entity. It is a work around but of all the possible scenarios its the best for my situation
We faced the same problem during building a solution for a client. It was a heavy restriction so in the end we just created our own order product entity and linked it via a one to many to order.
This gave us complete control over it and could add relationships as we wish.
This came at a cost unfortunately as you lose the auto calculation on order for example. This wasn't an issue however as we didn't need it or any of the price list functionality.
If this is an option for you I'd recommend doing it this way.
I think that everybody had to face the same problem in his CRM life.
For CRM, the entities, salesorderproduct... are entities used only to enumerate the products of the entity related in its name, and you can not do almost nothing, that's another problem with a workaround, that I'll try to explain, just to see if this could be the solution to creating relations with them, but I don't think so.
The problem is that you can not use the assign functionality as in other relations to copy data from one entityproduct to the lower-level entityproduct when you create custom fields, and you want to copy throught the entire workflow of sales section. In this case, there is no option to enter the "Assign" window (I use Assign because I have always worked in Spanish) and create the field mappings between them.
This could be done by searching the GUID of the "Assign" window, and copyign into any of the URLs of the "Assign" window, the window showed up, and you could do your custom mappings.
I hope this could help, although this question is too old, so I hope other that arrive here, could see more opinions :)
See you

How do you name your projects?

At work we're having issues with different people wanting/suggesting different names for a new project. It's changed 4 times in the last 2 days.
What processes do people go through when naming internal projects? How do you work as a team to come to a conclusion for a project name?
To make this a little clearer, the question is HOW do you name your projects, not what do you name them. I'm more on about a process so we don't get the 3/4 managers involved spending the next 4 weeks changing the name of the project every 4 hours
Why is the team choosing the name. Don't you have a manager? That's how organizations are supposed to work: if one level can't achieve the goal in a timely manner, escalate it up to the next level.
What a colossal waste of time!
We name them after asimov characters.
The blackjack client was Hari.
Have everyone put their suggestions in a hat, and pull a name at random. Does it really matter?
Have the team make many suggestions.
Have management and Legal weed out the problematic names.
Have the team vote on the remaining names.
Make a list of all potential names, each person only gets to make one name suggestion. Have everyone vote on the names. Each person can vote only once, and not for their own name.
It really depends on how saddled with a name you will be.
For instance if its a .Net project, you will be quite stuck with the name you choose, in which case the projects usually get a really boring naming, even if the site has a nice naming.
In other technologies where there is no "manifest" to the code, named as a project, and moving the code to a new folder name is the "project" then witty names seems to be great fun.
One company I was with named all their projects according to vacation city names. So we had Paris, Athens, etc. I've also used greek gods and constellations. There wasn't much of a process to it, just whatever the development team thought was cool. Though there was an instance where we allowed our beta partner at the time to pick the name of the project - they had a whole contest and everything.
Another project I was on had four phases:
Red, Green, Blue, and 4
Gotta love that.
Use letters to indicate versions of your product, and have team members vote on words that start with the letters.
We've had one project that was named Ambition, Benevolence, Charisma, etc.
I like to use Instant Runoff Voting for this.
I've also found that having new team members suggest names helps them feel ownership for the project.
For my personal projects I name them after Revolutionary War battles (e.g. Lexington, Concord, Saratoga, Ticonderoga). I'm also fond of using names from Greek mythology since I'm a big fan of that :)
Another personal project was named Rushmore (as in Mt. Rushmore). IMO it all depends on what you fancy and whether or not the project name is going to be publicly visible. If it's not, then name it whatever you want (the more mysterious the better if you ask me!) but if it will be public then choose something that doesn't sound ridiculous or will make people go "Huh?". Project Fig Newton or Project Twinkie might sound funny to a group of devs, but how will it sound to customers?
Name your projects in a way that helps developers know what they are when you put the under source control. Outside of your current source control it doesn't matter what people call it.
Try to pick a naming convention that stays the same it will help organize things in your source control and try to stay away from initials and abbreviations because once all the DEVs on that project leave no one will know what the project is.
Try sticking to names like:
customerA Website
customerB WinApp
One place I worked used mountains for the framework, and ski resorts for the client; Another used tube stations. In both cases they were internal names that didn't have a fixed version number (as marketing had a habit of changing that)
I've seen architects choose, CTOs mandate, dev teams rota, and a reward for some arbitrary competition but ultimately it comes down to one man with one vote. You can democratise that any way you want, but whatever you do just make sure it's inoffensive and you stick to it.
Fwiw, my favourite system has been the architect who chose Judge Dredd characters. :D
For personal projects I sometimes use names of big cities, like New York, Berlin, Tokyo etc.
It' both convenient since I feel the project isn't bound to a specific technology or function and can involve into whatever it might be, while at the same time it can be a bit difficult remembering if it was Tokyo or Oslo which was doing "that" cool thing..
At work we have a tradition for more simple and descriptive names. For instance an application that uploads files according to a schedule is called ScheduledFileUploader. And then there's FileOrganizer, MailSender, DiskSpaceMonitor et.c..
you mean a code name? since its gonna stick only in the minds of internal employees, we usually named it the first thing we thought of and we never put it up for discussion, one project we had named "Dough" seriously! :) and it worked like magic, anything works
Female names (everybody likes a nice name, specially if it brings nice memories)
Animals (everybody likes animals)
We usually agree very fast on this one, no problems there. After we have named something, for example, "chipmunk", the jokes and funny pictures start to arrive (everybody likes making up jokes :)
But really, I don't think it makes a difference.
Name your projects after constellations. There are plenty to choose from, most sound cool. Also when you get to the Aries project, you can tell people that you're checking the cell structure and the cell structure has been checked.
With great care and a lot of personal pain. I quite frankly obsess about my personal project names. Even to the point that I will spend hours thinking about the name of a particular type or DLL.
Sadly this is not a joke.
No project names, just version numbers.
Everybody knows that if you released "MyBlaPro 4" you are working on "MyBlaPro 5" and it is going to be out in 1-2 years (your company history can offer a hint on the length of your dev. cycles).
The big secret is not that you are working on the next version, but when it is out.
Code names confuse not only outsiders (think Avalon/WPF, Longhorn/XP/2000/Vista/7) but also insiders. You can sometimes hear discussions like this "no, we added X in Zimfandel, before Cabernet" "no, you are wrong, Cabernet was 5, Zimfandel was 6, but X was added in Merlot"
Add to the mess the half-outsiders. Think localization companies that have to reuse memory translations between versions ("for Rainier we should use the memory from Shasta, or from Whitney?").
My big brother Mikael has been called to some firefighting in very late projects which...he chose some movie titles
Save Willy - a bloated java project
Harry Potter - a architectural disaster java project

When the bots attack! [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What are some popular spam prevention methods besides CAPTCHA?
I have tried doing 'honeypots' where you put a field and then hide it with CSS (marking it as 'leave blank' for anyone with stylesheets disabled) but I have found that a lot of bots are able to get past it very quickly. There are also techniques like setting fields to a certain value and changing them with JS, calculating times between load time and submit time, checking the referer URL, and a million other things. They all have their pitfalls and pretty much all you can hope for is to filter as much as you can with them while not alienating who you're here for: the users.
At the end of the day, though, if you really, really, don't want bots to be sending things through your form you're going to want to put a CAPTCHA on it - best one I've seen that takes care of mostly everything is reCAPTCHA - but thanks to India's CAPTCHA solving market and the ingenuity of spammers everywhere that's not even successful all of the time. I would beware using something that is 'ingenious' but kind of 'out there' as it would be more of a 'wtf' for users that are at least somewhat used to your usual CAPTCHAs.
Shocking, but almost every response here included some form of CAPTCHA. The OP wanted something different, I guess maybe he wanted something that actually works, and maybe even solves the real problem.
CAPTCHA doesn't work, and even if it did - its the wrong problem - humans can still flood your system, and by definition CAPTCHA wont stop that (cuz its designed only to tell if you're a human or not - not that it does that well...)
So, what other solutions are there? Well, it depends... on your system and your needs.
For instance, if all you're trying to do is limit how many times a user can fill out a "Contact Me" form, you can simply throttle how many requests each user can submit per hour/day/whatever. If your users are anonymous, maybe you need to throttle according to IP addresses, and occasionally blacklist an IP (though this too can be circumvented, and causes other problems).
If you're referring to a forum or blog comments (such as this one), well the more I use it the more I like the solution. A mix between authenticated users, authorization (based on reputation, not likely to be accumulated through flooding), throttling (how many you can do a day), the occasional CAPTCHA, and finally community moderation to cleanup the few that get through - all combine to provide a decent solution. (I wonder if Jeff can provide some info on how much spam and other malposts actually get through...?)
Another control to consider (dont know if they have it here), is some form of IDS/IPS - if you can detect and recognize spam, you can block THAT pattern. Moderation fills that need manually, here...
Note that any one of these does not prevent the spam, but incrementally lowers the probability, and thus the profitability. This changes the economic equation, and leaves CAPTCHA to actually provide enough value to be worth it - since its no longer worth it for the spammers to bother breaking it or going around it (thanks to the other controls).
Give the user the possibility to calculate:
What is the sum of 3 and 8?
By the way: Just surfed by an interesting approach of Microsoft Research: Asirra.
http://research.microsoft.com/asirra/
It shows you several pictures and you have to identify the pictures with a given motif.
Try Akismet
Captchas or any form of human-only questions are horrible from a usability perspective. Sometimes they're necessary, but I prefer to kill spam using filters like Akismet.
Akismet was originally built to thwart spam comments on WordPress blogs, but the API is capabable of being adapted for other uses.
Update: We've started using the ruby library Rakismet on our Rails app, Yarp.com. So far, it's been working great to thwart the spam bots.
A very simple method which puts no load on the user is just to disable the submit button for a second after the page has been loaded. I used it on a public forum which had continuous spam posts, and it stopped them since.
Ned Batchelder wrote up a technique that combines hashes with honeypots for some wickedly effective bot-prevention. No captchas, just code.
It's up at Stopping spambots with hashes and honeypots:
Rather than stopping bots by having people identify themselves, we can stop the bots by making it difficult for them to make a successful post, or by having them inadvertently identify themselves as bots. This removes the burden from people, and leaves the comment form free of visible anti-spam measures.
This technique is how I prevent spambots on this site. It works. The method described here doesn't look at the content at all. It can be augmented with content-based prevention such as Akismet, but I find it works very well all by itself.
http://chongqed.org/ maintains blacklists of active spam sources and the URLs being advertised in the spams. I have found filtering posts for the latter to be very effective in forums.
The most common ones I've observed orient around user input to solve simple puzzles e.g. of the following is a picture of a cat. (displaying pictures of thumbnails of dogs surrounding a cat). Or simple math problems.
While interesting I'm sure the arms race will also overwhelm those systems too.
You can use Recaptcha to at least make a captcha useful. Then you can make questions with simple verbal math problems or similar. Microsoft's Asirra makes you find pics of cats and dogs. Requiring a valid email address to activate an account stops spammers when they wouldn't get enough benefit from the service, but might deter normal users as well.
The following is unfeasible with today's technology, but I don't think it's too far off. It's also probably overkill for dealing with forum spam, but could be useful for account sign-ups, or any situation where you wanted to be really sure you were dealing with humans and they would be prepared for it to take a few minutes to complete the process.
Have 2 users who are trying to prove themselves human connect to each other via their webcams and ask them if the person they are seeing is human and live (i.e. not a recording), by getting them to, for example, mirror each other's movements, or write something on a piece of paper. Get everyone to do this a few times with different users, and throw a few recordings into the mix which they also have to identify correctly as such.
A popular method on forums is to simply queue the threads of members with less than 10 posts in a moderation queue. Of course, this doesn't help if you don't have moderators, or it's not a forum. A more general method is the calculation of hyperlink to text ratios. Often, spam posts contain a ton of hyperlinks, and you can catch a lot this way. In the same vein is comparing the content of consecutive posts. Simply do not allow consecutive posts that are extremely similar.
Of course, anyone with knowledge of the measures you take is going to be able to get around them. To be honest, there is little you can do if you are the target of a specific attack. Rather, you should focus on preventing more general, unskilled attacks.
For human moderators it surely helps to be able to easily find and delete all posts from some IP, or all posts from some user if the bot is smart enough to use a registered account. Likewise the option to easily block IP addresses or accounts for some time, without further administration, will lessen the administrative burden for human moderators.
Using cookies to make bots and human spammers believe that their post is actually visible (while only they themselves see it) prevents them (or trolls) from changing techniques. Let the spammers and trolls see the other spam and troll messages.
Javascript evaluation techniques like this Invisible Captcha system require the browser to evaluate Javascript before the page submission will be accepted. It falls back nicely when the user doesn't have Javascript enabled by just displaying a conventional CAPTCHA test.
Animated captchas' - scrolling text - still easy to recognize by humans but if you make sure that none of the frames offer something complete to recognize.
multiple choice question - All it takes is a ______ and a smile. idea here is that the user will have to choose/understand.
session variable - checking that a variable you put into a session is part of the request. will foil the dumb bots that simply generate requests but probably not the bots that are modeled like a browser.
math question - 2 + 5 = - this again is to ask a question that is easy to solve but prevents the bots ability to generate a response.
image grid - you create grid of images - select 1 or 2 of a particular type such as 3x3 grid picture of animals and you have to pick out all the birds on the grid.
Hope this gives you some ideas for your new solution.
A friend has the simplest anti-spam method, and it works.
He has a custom text box which says "please type in the number 4".
His blog is rather popular, but still not popular enough for bots to figure it out (yet).
Please remember to make your solution accessible to those not using conventional browsers. The iPhone crowd are not to be ignored, and those with vision and cognitive problems should not be excluded either.
Honeypots are one effective method. Phil Haack gives one good honeypot method, that could be used in principle for any forum/blog/etc.
You could also write a crawler that follows spam links and analyzes their page to see if it's a genuine link or not. The most obvious would be pages with an exact copy of your content, but you could pick out other indicators.
Moderation and blacklisting, especially with plugins like these ones for WordPress (or whatever you're using, similar software is available for most platforms), will work in a low-volume environment. If your environment is a low volume one, don't underestimate the advantage this gives you. Personally deciding what is reasonable content and what isn't gives you ultimate flexibility in spam control, if you have the time.
Don't forget, as others have pointed out, that CAPTCHAs are not limited to text recognition from an image. Visual association, math problems, and other non-subjective questions relayed through an image also qualify.
Sblam is an interesting project.
Invisble form fields. Make a form field that doesn't appear on the screen to the user. using display: none as a css style so that it doesn't show up. For accessibility's sake, you could even put hidden text so that people using screen readers would know not to fill it in. Bots almost always fill in all fields, so you could block any post that filled in the invisible field.
Block access based on a blacklist of spammers IP addresses.
Honeypot techniques put an invisible decoy form at the top of the page. Users don't see it and submit the correct form, bots submit the wrong form which does nothing or bans their IP.
I've seen a few neat ideas along the lines of Asira which ask you to identify which pictures are cats. I believe the idea originated from KittenAuth a while ago..
Use something like the google image labeler with appropriately chosen images such that a computer wouldn't be able to recognise the dominant features of it that a human could.
The user would be shown an image and would have to type words associated with it. They would keep being shown images until they have typed enough words that agreed with what previous users had typed for the same image. Some images would be new ones that they weren't being tested against, but were included to record what words are associated with them. Depending on your audience you could also possibly choose images that only they would recognise.
Mollom is supposedly good at stopping spam. Both personal (free) and professional versions are available.
I know some people mentioned ASIRRA, but if you go to all the adopt me links for the images, it will say on that linked page if its a cat or dog. So it should be relatively easy for a bot to just go to all the adoptme links. So its just a matter of time for that project.
just verify the email address and let google/yahoo etc worry about it
You could get some device ID software the41 has some fraud prevention software that can detect the hardware being used to access your site. I belive they use it to catch fraudsters but could be used to stop bots. Once you have identified an device being used by a bot you can just block that device. Last time a checked it can even trace your route throught he phone network ( Not your Geo-IP !! ) so can even block a post code if you want.
Its expensive through so prop. a better cheaper solution that is a little less big brother.

Resources