Search Results

Search found 21001 results on 841 pages for 'spelling check'.

Page 293/841 | < Previous Page | 289 290 291 292 293 294 295 296 297 298 299 300  | Next Page >

  • SSL Certificate is Untrusted... sometimes

    - by dragonmantank
    Web Designer I'm working with signed up a new client that needed an SSL certificate. We went to namecheap.com and purchased on from Comodo. Got all the needed files and set it up in ISPConfig. To test we used Windows 7 running IE8, Firefox 3.6, and Chrome 12, and then on OSX with Firefox 4, Safari 5, and Chrome 13. All of them worked fine. The client is getting 'This connection is untrusted' in Firefox 4 and 5. Safari works fine on their machine. On my machines and the designer's machines all works with no errors. I had the client forward me the info for the certificate that Firefox has and the fingerprints match up. I have an old Windows 2000 VM with IE6 and Chrome and those work just fine as well. Any ideas on what else to check or do? The server is running Debian 5.0, up-to-date, with Apache 2 and ISPConfig 3.3

    Read the article

  • Rainbows and Unicorns at the Devoxx OTN Hack Fest

    - by Tori Wieldt
    At the OTN Hack Fest at Devoxx, several developers did their first "hello world" with the Internet of Things (IoT). They had fun and built basic applications with Java Embedded, Raspberry Pi and Leap Motion controllers. Experts Yara & Vinicius Senger and Geert Bevin provided the basics and support. Geert Bevin did a bit of hacking too. Check out this video to see what he came up with a short amount of time: &amp;amp;amp;amp;lt;span id=&amp;amp;amp;amp;quot;XinhaEditingPostion&amp;amp;amp;amp;quot;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;lt;/span&amp;amp;amp;amp;gt; Learn more about Java Embedded at the Oracle Technology Network. 

    Read the article

  • Virtual Newsstand Displays Comic Books by Date

    - by Jason Fitzpatrick
    If you’re a comic book aficionado (or just want to take a stroll down memory lane), this virtual newsstand shows you all the comics published for any month and year going all the way back to the 1930s. Courtesy of Mike’s Amazing World of Comics, the virtual newsstand lets you dial in a month, year, sorting style, and shows all publishers or select publishers. The covers are displayed in a grid where you can click through to see a larger version of the cover and read additional information about the comic. It’s a really neat way to check out trends in comic design and artwork over the years. Hit up the link below to take it for the spin. Have a cool comic book resource to share? Sound off in the comments. The Newsstand [via Boing Boing] Why Enabling “Do Not Track” Doesn’t Stop You From Being Tracked HTG Explains: What is the Windows Page File and Should You Disable It? How To Get a Better Wireless Signal and Reduce Wireless Network Interference

    Read the article

  • Sound notification over SSH

    - by Lekensteyn
    I just switched from the Konversation IRC client to the terminal based IRSSI. I'm starting IRSSI on a remote machine using GNU screen + SSH. I do not get any sound notification on new messages, which means that I've to check out IRSSI once in a while for new messages. That's not really productive, so I'm looking for an application / script that plays a sound (preferably /usr/share/sounds/KDE-Im-Irc-Event.ogg and not the annoying beep) on my machine if there is any activity. It would be great if I can disable the notification for certain channels. Or, if that's not possible, some sort of notification via libnotify, thus making it available to GNOME and KDE.

    Read the article

  • Testing Reference Data Mappings

    - by Michael Stephenson
    Background Mapping reference data is one of the common scenarios in BizTalk development and its usually a bit of a pain when you need to manage a lot of reference data whether it be through the BizTalk Cross Referencing features or some kind of custom solution. I have seen many cases where only a couple of the mapping conditions are ever tested. Approach As usual I like to see these things tested in isolation before you start using them in your BizTalk maps so you know your mapping functions are working as expected. This approach can be used for almost all of your reference data type mapping functions where you can take advantage of MSTests data driven tests to test lots of conditions without having to write millions of tests. Walk Through Rather than go into the details of this here, I'm going to call out to one of my colleagues who wrote a nice little walk through about using data driven tests a while back. Check out Callum's blog: http://callumhibbert.blogspot.com/2009/07/data-driven-tests-with-mstest.html

    Read the article

  • Water Simulation in LIBGDX [on hold]

    - by Noah Huppert
    I am doing some R&D for a game and am now tackling the topic of water. The goal Make water that can flow. Aka you can have an origin point that water shoots out from or a downhill slope. Make it so water splashes, so when an object hits the water there is a splash. Aka: Actual physics water sim. The current way I know how to do it I know how to create a shader that makes an object look like its water by making waves. Combined with that you can check to see if an object is colliding and apply an upwards force to simulate buoyancy. What is wrong with that way The water does not flow No splashes Possible solutions Have particles that are fairly large that interact with each other to simulate water Possible drawbacks Performance. Question: Is there a better way to do water or is using particles as described the only way?

    Read the article

  • Markup format or script for data files?

    - by Aaron
    The game I'm designing will be mainly written in a high level scripting language (leaning towards either Lua or Squirrel) with a C++ core. In addition to scripts I'm also going to need different data files. Many data files will be for static information such as graphical assets and monster types. I'd also want to create and update data files at runtime for user information like option settings and game saves. Can I get away with using plain script files (i.e. .lua or .nut files) for my data files, or is it better to use dedicated markup formats like XML or YAML? If I use script files, loaded separately from my true scripts, then I wouldn't need an extra library to read those files. Scripting languages like Lua also have table syntax that lend themselves towards data definition. On the other hand I'd have to write my own schema check code. These languages also don't seem to support serialization "out of the box" like the markup format libraries do.

    Read the article

  • Oracle Solaris at OpenWorld SF 2012

    - by Markus Weber
    SAVE THE DATE !Oracle OpenWorld will be from Sep 30 to Oct 4 in San Francisco this year.Register paying early bird prices, plan for your travel, and plan for your hotel !Get ready to learn about the latest of Oracle Solaris, Oracle Solaris Cluster, and Oracle Solaris Studio. The external Call For Papers just closed, which means many people will work hard over the next few weeks to make sure you will get the best possible sessions, demos, hands on labs, etc.Early signs show that we will have great Solaris coverage, similar to last year. Read this nice recap about it, or to refresh your memory of what we managed to cover last year even more, check out the 2011 Focus On Oracle Solaris document (pdf). So stay tuned. As it's true for all other Oracle products, we will keep you posted on OpenWorld 2012 news as they become available.

    Read the article

  • What does this snippet work? It uses session cookie [closed]

    - by Emerald214
    My website is a gadget application. It uses CakePHP framework. It has the below snippet in AppController. I searched the cookie variable in the project but can't find any other occurences. I also don't understand what it works. Why does it always check this in every request. if ( isset( $_COOKIE[session_name()] ) ) { if ( !isset( $this->sns_id ) ) { // ????????? $this->cakeError( 'session' ); } } else { // ?????????????????? if ( !isset( $_REQUEST['post_pf_params'] ) ) { $this->cakeError( 'cookie' ); } }

    Read the article

  • SOLVED BleachBit: How to Completely Clear URL History in Firefox?

    - by tSquirrel
    14.04 / Firefox 29.0 I've been using Bleachbit to clear usage/file history, and for the most part it works great. However, it doesn't seem to clear the website hostnames out of the URL, at all. These addresses are not bookmarked. Also, the total URL isn't preserved, just the hostname. Visit site http://www.bluesnews.com/some_random_URL_string Exit Firefox Run Bleachbit, with ALL Firefox options selected Restart Firefox Check history: completely empty, other than bookmarked sites. www.bluesnews is NOT bookmarked Type "blue" which is Firefox automatically completes as "http://www.bluesnews.com/" Alternate Step #3: Use Firefox's built-in "Clear History" and select ALL entries with a time frame of "Everything". Same result as above. My inquiry in BB forums hasn't been responded to. I found Dan's proposed solution, however changing autocomplete in about:config only turns off the function, it doesn't actually stop storing URLs. SOLVED - See my comment in the "Answer" response from Tim

    Read the article

  • SEI Turns Software Architecture into a Game

    - by Bob Rhubart-Oracle
    "Architecture is the decisions that you wish you could get right early in a project." -- Ralph E. Johnson Unless you can see into the future, getting those decisions right comes down to a collection of hard choices. But the Software Engineering Institute (SEI) of Carnegie Mellon University has turned those hard choices into a game. Literally. According to the SEI website: The Hard Choices game is a simulation of the software development cycle meant to communicate the concepts of uncertainty, risk, options, and technical debt. In the quest to become market leader, players race to release a quality product to the marketplace. By the end of the game, everyone has experienced the implications of investing effort to gain an advantage or of paying a price to take shortcuts, as they employ design strategies in the face of uncertainty.   Check it out for yourself: Download the Hard Choices Board Game Download the companion white paper: The Hard Choices Game Explained

    Read the article

  • Getting started with Team Foundation Server

    - by joe
    At work, we recently started using Team Foundation Server to manage our source code, i have no idea how to use this system. I do not know even know how to check source code in and out. Does anyone know of a step-by-step tutorial on how to work with TFS? Just for basic operations e.g. get latest version, upload your changes, etc. I am accessing it from Visual Studio 2010. I also have access to the TFS web interface.

    Read the article

  • NEW - Oracle Certifications and Documentation Available for Pre-Acquisition Sun/BEA IdM Products

    - by Irina
    If you have been looking for Oracle certification information or documentation for the pre-Acquisition Sun/BEA Identity Management products, you can now find them at the Certifications Central Hub.Use this Hub if you're looking for Sun Identity Management documentation, certified configurations for Waveset, Identity Analytics, OpenSSO, and more. Scroll down, below the bullets, to the bottom of the table to find: Of course, you can still find a great wealth of certification information for current products at this hub, as in the past. Be sure to check before you install! In case you haven't used this page before, notice that you can get to the documentation, certifications and downloads for IdM products by clicking on "Identity Management" in the leftmost pane. In the new screen, you will see each IdM product, along with tabs for Downloads, Documentation, Community, and Learn More. Let us know if you don't find what you are looking for. Happy Trails.

    Read the article

  • Upgrade a Retro Corded Mouse with Wireless Bluetooth Connectivity

    - by Jason Fitzpatrick
    If there’s a beloved retro mouse gathering dust in your office closet for want of wireless connectivity, this detailed tutorial will guide you through upgrading the guts to turn your corded mouse into a Bluetooth model. If you’re handy with a soldering iron and not afraid to hack apart the guts of a modern but inexpensive Bluetooth mouse, you should have no trouble digging right into this project. The end result is a modern mouse packed inside the casing of your old mouse–same old look and feel, brand new engine inside. Hit up the link below to check out the full tutorial. Retro Wireless Apple Mouse [via Lifehacker] HTG Explains: Is ReadyBoost Worth Using? HTG Explains: What The Windows Event Viewer Is and How You Can Use It HTG Explains: How Windows Uses The Task Scheduler for System Tasks

    Read the article

  • 7-Zip - A Free alternative to other compression utilities

    - by TATWORTH
    At http://www.7-zip.org/download.html, there is a free alternative other compression utilities. It handles a wide variety of formats including RAR!Here is the description from its home page:License 7-Zip is open source software. Most of the source code is under the GNU LGPL license. The unRAR code is under a mixed license: GNU LGPL + unRAR restrictions. Check license information here: 7-Zip license. You can use 7-Zip on any computer, including a computer in a commercial organization. You don't need to register or pay for 7-Zip. The main features of 7-Zip High compression ratio in 7z format with LZMA and LZMA2 compressionSupported formats: Packing / unpacking: 7z, XZ, BZIP2, GZIP, TAR, ZIP and WIMUnpacking only: ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, WIM, XAR and Z. For ZIP and GZIP formats, 7-Zip provides a compression ratio that is 2-10 % better than the ratio provided by PKZip and WinZipStrong AES-256 encryption in 7z and ZIP formatsSelf-extracting capability for 7z formatIntegration with Windows ShellPowerful File ManagerPowerful command line versionPlugin for FAR ManagerLocalizations for 79 languages

    Read the article

  • Cannot Update through Manager or Terminal/ Software Center Does Not Work

    - by BROBA
    I installed Tor a few days ago via the terminal. I deleted some hashtags in the gedit polipo, and changed my proxy settings in chrome, but was unable to make it work and have since changed all of it back. I then downloaded the Tor browser bundle which works great, but ever since then have been unable to download updates or new software. The update manager says to "check internet connection" and the software center displays a mostly blank screen under apps like "rhythmbox" and just says "available from main source" when I click on "use this source" a refresh symbol appears on the upper right corner of the software center for a split second, and then nothing happens. The app does not download and isn't available in the dash. When I try via the terminal it says it's unable to connect to my ip address. I tried changing the server and unchecking all the repository options for software sources, all to no avail. WHAT DID I DO?????

    Read the article

  • How do I allow all possible IPs for Gmail servers through my ufw firewall?

    - by nomadicME
    I am currently using the following rule: ufw allow out from my_local_ip to any port 587 This is a little too lax for my liking. I would like to tighten it up and restrict it to only gmail's smtp server ip addresses, but they are always changing. I used to just wait until an outgoing email didn't make it to its destination, then check syslog for the ip address that was blocked, then add that to the ufw configure script. However, now I have a need for much more reliability. Is there any way to use smtp.gmail.com in ufw? I don't think so, but thought I would ask. Any other ideas? Thanks.

    Read the article

  • Netflix Rolls Out Polished New iPhone and Android Apps [Video]

    - by Jason Fitzpatrick
    If you’re a Netflix subscriber, you’ve got a brand spanking new mobile interface to take for a spin. Last week Netflix released a brand new iOS interface, this week it’s a brand new Android interface. The above video showcases the new iOS interface for mobile playback on devices like the iPhone and iPad. The slick new layout makes it even easier to browser new content and resume watching content you’ve paused at home or on the go. For a peek at the new (and similar) Android interface, check out the video below: For more information about the respective apps, visit their download pages to read up and grab a copy. Netflix for Android / iOS How To Create a Customized Windows 7 Installation Disc With Integrated Updates How to Get Pro Features in Windows Home Versions with Third Party Tools HTG Explains: Is ReadyBoost Worth Using?

    Read the article

  • System Settings icons missing

    - by pst007x
    Is there any way to reset the System Settings Control Panel page? The Control Panel was fine, but the for no apparent reason, PRIVACY, BACKGROUND and a host of other icons have vanished... My system seems pretty messed up after the upgrade... Shutdown, Reset, and Logout from the menu no longer work either... However, I can launch the Privacy panel from the terminal: activity-log-manager and it runs... so why is this, and others, now missing from the System Setting Control Panel? I have checked and: activity-log-manager-control-center is installed Is there a config file I can check, or a setting in Gconf where the list of icons are referenced? I have run - in desperation - sudo apt-get purge unity* sudo apt-get purge ubuntu* sudo apt-get autoremove Run Gconf-cleaner and Janitor then re-installed all packages Still the same issue....?

    Read the article

  • This week in the OTN Architect Center

    - by Bob Rhubart
    Updated every Monday, the Oracle Technology Network Architect Center is your one-stop for the latest content drawn from across the architect community. You find the articles and white papers, the latest ArchBeat Podcast, selected blog posts from community leaders, a list of events for architects, along with the latest information on Oracle products. Featured this week: A Fusion Applications Technical Overview A sample chapter from Managing Oracle Fusion Applications by Richard Bingham, new from Oracle Press. Oracle Optimized Solution for Lifecycle Content Management A new white paper from Donna Harland and Nick Kloski. Toronto Architect Day Panel Discussion - Part 2 The second of a four-part program featuring a live recording of the panel discussion from OTN Architect Day in Toronto, featuring Oracle ACE Director Cary Millsap, InfoQ.com editor and co-founder Floyd Marinescu, and members of Oracle's Enterprise Architecture team. Check it out: OTN Architect Center

    Read the article

  • How do you avoid working on the wrong branch?

    - by henginy
    Being careful is usually enough to prevent problems, but sometimes I need to double check the branch I'm working on (e.g. "hmm... I'm in the dev branch, right?") by checking the source control path of a random file. In looking for an easier way, I thought of naming the solution files accordingly (e.g. MySolution_Dev.sln) but with different file names in each branch, I can't merge the solution files. It's not that big of a deal but are there any methods or "small tricks" you use to quickly ensure you're in the correct branch? I'm using Visual Studio 2010 with TFS 2008.

    Read the article

  • Using BizTalk to bridge SQL Job and Human Intervention (Requesting Permission)

    - by Kevin Shyr
    I start off the process with either a BizTalk Scheduler (http://biztalkscheduledtask.codeplex.com/releases/view/50363) or a manual file drop of the XML message.  The manual file drop is to allow the SQL  Job to call a "File Copy" SSIS step to copy the trigger file for the next process and allows SQL  Job to be linked back into BizTalk processing. The Process Trigger XML looks like the following.  It is basically the configuration hub of the business process <ns0:MsgSchedulerTriggerSQLJobReceive xmlns:ns0="urn:com:something something">   <ns0:IsProcessAsync>YES</ns0:IsProcessAsync>   <ns0:IsPermissionRequired>YES</ns0:IsPermissionRequired>   <ns0:BusinessProcessName>Data Push</ns0:BusinessProcessName>   <ns0:EmailFrom>[email protected]</ns0:EmailFrom>   <ns0:EmailRecipientToList>[email protected]</ns0:EmailRecipientToList>   <ns0:EmailRecipientCCList>[email protected]</ns0:EmailRecipientCCList>   <ns0:EmailMessageBodyForPermissionRequest>This message was sent to request permission to start the Data Push process.  The SQL Job to be run is WeeklyProcessing_DataPush</ns0:EmailMessageBodyForPermissionRequest>   <ns0:SQLJobName>WeeklyProcessing_DataPush</ns0:SQLJobName>   <ns0:SQLJobStepName>Push_To_Production</ns0:SQLJobStepName>   <ns0:SQLJobMinToWait>1</ns0:SQLJobMinToWait>   <ns0:PermissionRequestTriggerPath>\\server\ETL-BizTalk\Automation\TriggerCreatedByBizTalk\</ns0:PermissionRequestTriggerPath>   <ns0:PermissionRequestApprovedPath>\\server\ETL-BizTalk\Automation\Approved\</ns0:PermissionRequestApprovedPath>   <ns0:PermissionRequestNotApprovedPath>\\server\ETL-BizTalk\Automation\NotApproved\</ns0:PermissionRequestNotApprovedPath> </ns0:MsgSchedulerTriggerSQLJobReceive>   Every node of this schema was promoted to a distinguished field so that the values can be used for decision making in the orchestration.  The first decision made is on the "IsPermissionRequired" field.     If permission is required (IsPermissionRequired=="YES"), BizTalk will use the configuration info in the XML trigger to format the email message.  Here is the snippet of how the email message is constructed. SQLJobEmailMessage.EmailBody     = new Eai.OrchestrationHelpers.XlangCustomFormatters.RawString(         MsgSchedulerTriggerSQLJobReceive.EmailMessageBodyForPermissionRequest +         "<br><br>" +         "By moving the file, you are either giving permission to the process, or disapprove of the process." +         "<br>" +         "This is the file to move: \"" + PermissionTriggerToBeGenereatedHere +         "\"<br>" +         "(You may find it easier to open the destination folder first, then navigate to the sibling folder to get to this file)" +         "<br><br>" +         "To approve, move(NOT copy) the file here: " + MsgSchedulerTriggerSQLJobReceive.PermissionRequestApprovedPath +         "<br><br>" +         "To disapprove, move(NOT copy) the file here: " + MsgSchedulerTriggerSQLJobReceive.PermissionRequestNotApprovedPath +         "<br><br>" +         "The file will be IMMEDIATELY picked up by the automated process.  This is normal.  You should receive a message soon that the file is processed." +         "<br>" +         "Thank you!"     ); SQLJobSendNotification(Microsoft.XLANGs.BaseTypes.Address) = "mailto:" + MsgSchedulerTriggerSQLJobReceive.EmailRecipientToList; SQLJobEmailMessage.EmailBody(Microsoft.XLANGs.BaseTypes.ContentType) = "text/html"; SQLJobEmailMessage(SMTP.Subject) = "Requesting Permission to Start the " + MsgSchedulerTriggerSQLJobReceive.BusinessProcessName; SQLJobEmailMessage(SMTP.From) = MsgSchedulerTriggerSQLJobReceive.EmailFrom; SQLJobEmailMessage(SMTP.CC) = MsgSchedulerTriggerSQLJobReceive.EmailRecipientCCList; SQLJobEmailMessage(SMTP.EmailBodyFileCharset) = "UTF-8"; SQLJobEmailMessage(SMTP.SMTPHost) = "localhost"; SQLJobEmailMessage(SMTP.MessagePartsAttachments) = 2;   After the Permission request email is sent, the next step is to generate the actual Permission Trigger file.  A correlation set is used here on SQLJobName and a newly generated GUID field. <?xml version="1.0" encoding="utf-8"?><ns0:SQLJobAuthorizationTrigger xmlns:ns0="somethingsomething"><SQLJobName>Data Push</SQLJobName><CorrelationGuid>9f7c6b46-0e62-46a7-b3a0-b5327ab03753</CorrelationGuid></ns0:SQLJobAuthorizationTrigger> The end user (the human intervention piece) will either grant permission for this process, or deny it, by moving the Permission Trigger file to either the "Approved" folder or the "NotApproved" folder.  A parallel Listen shape is waiting for either response.   The next set of steps decide how the SQL Job is to be called, or whether it is called at all.  If permission denied, it simply sends out a notification.  If permission is granted, then the flag (IsProcessAsync) in the original Process Trigger is used.  The synchonous part is not really synchronous, but a loop timer to check the status within the calling stored procedure (for more information, check out my previous post:  http://geekswithblogs.net/LifeLongTechie/archive/2010/11/01/execute-sql-job-synchronously-for-biztalk-via-a-stored-procedure.aspx)  If it's async, then the sp starts the job and BizTalk sends out an email.   And of course, some error notification:   Footnote: The next version of this orchestration will have an additional parallel line near the Listen shape with a Delay built in and a Loop to send out a daily reminder if no response has been received from the end user.  The synchronous part is used to gather results and execute a data clean up process so that the SQL Job can be re-tried.  There are manu possibilities here.

    Read the article

  • Lenovo u400, Ubuntu 12.04. Sudden reboots / power down

    - by Victor Neo
    I've recently bought a Lenovo u400 (http://www.lenovo.com/products/us/laptop/ideapad/u-series/u400/) and installed Ubuntu 12.04 on it. Everything works fine (I've installed the proprietary ATI drivers for switchable graphics) except that I get a random power down or reboot either while surfing the web or watching videos. Monitoring the temperature with sensors, the laptop never goes into any critical zone but still may power down or reboot once in a while. Is there any logs that I should check and any particular message I should take note of? EDIT: This happens to me as well. This also happens without proprietary drivers activated.

    Read the article

  • Breaking 1NF to model subset constraints. Does this sound sane?

    - by Chris Travers
    My first question here. Appologize if it is in the wrong forum but this seems pretty conceptual. I am looking at doing something that goes against conventional wisdom and want to get some feedback as to whether this is totally insane or will result in problems, so critique away! I am on PostgreSQL 9.1 but may be moving to 9.2 for this part of this project. To re-iterate: Does it seem sane to break 1NF in this way? I am not looking for debugging code so much as where people see problems that this might lead. The Problem In double entry accounting, financial transactions are journal entries with an arbitrary number of lines. Each line has either a left value (debit) or a right value (credit) which can be modelled as a single value with negatives as debits and positives as credits or vice versa. The sum of all debits and credits must equal zero (so if we go with a single amount field, sum(amount) must equal zero for each financial journal entry). SQL-based databases, pretty much required for this sort of work, have no way to express this sort of constraint natively and so any approach to enforcing it in the database seems rather complex. The Write Model The journal entries are append only. There is a possibility we will add a delete model but it will be subject to a different set of restrictions and so is not applicable here. If and when we allow deletes, we will probably do them using a simple ON DELETE CASCADE designation on the foreign key, and require that deletes go through a dedicated stored procedure which can enforce the other constraints. So inserts and selects have to be accommodated but updates and deletes do not for this task. My Proposed Solution My proposed solution is to break first normal form and model constraints on arrays of tuples, with a trigger that breaks the rows out into another table. CREATE TABLE journal_line ( entry_id bigserial primary key, account_id int not null references account(id), journal_entry_id bigint not null, -- adding references later amount numeric not null ); I would then add "table methods" to extract debits and credits for reporting purposes: CREATE OR REPLACE FUNCTION debits(journal_line) RETURNS numeric LANGUAGE sql IMMUTABLE AS $$ SELECT CASE WHEN $1.amount < 0 THEN $1.amount * -1 ELSE NULL END; $$; CREATE OR REPLACE FUNCTION credits(journal_line) RETURNS numeric LANGUAGE sql IMMUTABLE AS $$ SELECT CASE WHEN $1.amount > 0 THEN $1.amount ELSE NULL END; $$; Then the journal entry table (simplified for this example): CREATE TABLE journal_entry ( entry_id bigserial primary key, -- no natural keys :-( journal_id int not null references journal(id), date_posted date not null, reference text not null, description text not null, journal_lines journal_line[] not null ); Then a table method and and check constraints: CREATE OR REPLACE FUNCTION running_total(journal_entry) returns numeric language sql immutable as $$ SELECT sum(amount) FROM unnest($1.journal_lines); $$; ALTER TABLE journal_entry ADD CONSTRAINT CHECK (((journal_entry.running_total) = 0)); ALTER TABLE journal_line ADD FOREIGN KEY journal_entry_id REFERENCES journal_entry(entry_id); And finally we'd have a breakout trigger: CREATE OR REPLACE FUNCTION je_breakout() RETURNS TRIGGER LANGUAGE PLPGSQL AS $$ BEGIN IF TG_OP = 'INSERT' THEN INSERT INTO journal_line (journal_entry_id, account_id, amount) SELECT NEW.id, account_id, amount FROM unnest(NEW.journal_lines); RETURN NEW; ELSE RAISE EXCEPTION 'Operation Not Allowed'; END IF; END; $$; And finally CREATE TRIGGER AFTER INSERT OR UPDATE OR DELETE ON journal_entry FOR EACH ROW EXECUTE_PROCEDURE je_breaout(); Of course the example above is simplified. There will be a status table that will track approval status allowing for separation of duties, etc. However the goal here is to prevent unbalanced transactions. Any feedback? Does this sound entirely insane? Standard Solutions? In getting to this point I have to say I have looked at four different current ERP solutions to this problems: Represent every line item as a debit and a credit against different accounts. Use of foreign keys against the line item table to enforce an eventual running total of 0 Use of constraint triggers in PostgreSQL Forcing all validation here solely through the app logic. My concerns are that #1 is pretty limiting and very hard to audit internally. It's not programmer transparent and so it strikes me as being difficult to work with in the future. The second strikes me as being very complex and required a series of contraints and foreign keys against self to make work, and therefore it strikes me as complex, hard to sort out at least in my mind, and thus hard to work with. The fourth could be done as we force all access through stored procedures anyway and this is the most common solution (have the app total things up and throw an error otherwise). However, I think proof that a constraint is followed is superior to test cases, and so the question becomes whether this in fact generates insert anomilies rather than solving them. If this is a solved problem it isn't the case that everyone agrees on the solution....

    Read the article

  • Avoiding duplicate bug reports

    - by Jaakko Seppälä
    I use Linux and other open source software in my home. As I'm not a professional coder, I usually report bugs to developers as my skills are not enough to solve problems on my own. What kind of things you want me to check before I send a bug report? I mean, once I thought I found a bug in Gedit and I couldn't find similar bug in Bugzilla. But after I sent the report, some developer said that the bug is already in Bugzilla as the bug was in GTK+, not in Gedit. Sometimes it might be hard for an amateur to guess whether some previously known bug would solve the issue I found.

    Read the article

< Previous Page | 289 290 291 292 293 294 295 296 297 298 299 300  | Next Page >