Jump to content

AtomicMaster

Senior Members
  • Posts

    157
  • Joined

  • Last visited

Everything posted by AtomicMaster

  1. I am still in a bit of confusion as to how your paper is supposed to make us be closer to a halting problem solution. If i write a regular expression that will simply look at code and detect a while(1)-type loop, we would be no closer to the solution, even though i just detected a special case where the program would not halt... That's aside from your mistaken assumption that a program or part there-of that ever calls itself with the same argument is infinitely recursive.
  2. if there is only 100 words, you can just build a quick hashmap and let it go at it... Substitution is not the hard part, its the correcting the beggining of the sentence that will be a little bit challenging.
  3. yeah but a debug or any program with a login page compiled with this compiler would be different from other compilers. If i say use this compiler to compile my code, and also use gcc and the intel compiler, this compiler would produce a program that would be significantly bigger than my other compilers, and when i am debugging my code, it would be very evident that these unintended events are happening (because when i fuzz my code and it breaks, the first break will be put right after you click login), and oh noes the assembly from gcc and intel will look similar, while this special c compiler will significantly differ. And if any student peruses the optimization stages of the compiler for a project the insertion will also be blatantly evident And if you ask "why cant you just insert this into gcc and intel compilers". I suppose you could, but you would have to be very smart about it, as code is severely audited prior to patching, and gcc self-tests do things like look at the end-size of executables and developers would be very interested in this difference....
  4. [brilliantly stupid] x [stupidly brilliant] = [brilliantly brilliant, stupidly stupid] Um, what? Our brains are electro-chemical organs, yes, but not digital-analog... not quite even sure how to respond. Что? Wait, digital has "much better pattern recognition", and super-intelligent AI? I'm very confused. Qoi? What does shape have to do with analog? Is digital sharp? or is it green? or sour? maybe chunky? Even more confused... Que? Even the universe does not have infinite resolution, our eyes certainly don't... I ran out of languages... and feel a bit over-ghasped
  5. Why would you go through all the trouble of doing this? Windows XP already comes with numerous backdoors as well as built-in keyloggers. And its security features are such that you can pretty much do as you wish with WinXP machines already. What you fail to realize here is that you dont actually have to embed this code into the system image. You cant run code that wouldn't look, feel, and work (or have some sort of special "undetectability") than any current advanced logger/bd doesn't already have. For example look at boot kits... Rule #1: Trust noone! Regardless, open, closed-source, matters not, it's not any simpler to audit ~6-8m lines of linux kernel. And it's not just software. How do you trust ford that all the welds on your car are correct and everything is put together correctly at the assembly line. How do you trust your cell network provider that they don't forward your every call through china, and so it doesn't get recorded there? You simply can not trust anything. That said, you still rely on vendors all the time. So you have to test, verify claims, and always approach everything you use with caution. One thing for open systems is that those can at least be audited, however difficult that may be, at least open systems are open for auditing. "black-box" maybe? There is a field called reverse engineering, lovingly called reversing by the people who are in it. There are many types and thus solutions to code obscurity; white papers come out annually for both sides of that. How to reverse is a different problem from trust and auditing. One can audit by reversing, but it can be extremely complex, and very time consuming, and that is before you can see the executing code sometimes, and sometimes you can't even see the code and so you have to guess based on what you see happen and without any other information (it's sometimes a bit like particle physics where you can often not see effects, but be able to extrapolate backwards based on models and events of events of events, think Higgs boson for example). I'm going to leave it there for now. See where this turns
  6. I did mistype, and it doesnt change my point. Let me just make sure i understand your par solution to the problem of "by looking at code determine if it will halt or run forever". Does this sound about right: 1 - So you look at code and you generate similar code that is either the same or is some magically-selected part of the code (didn't get that) but that code also throws exceptions 2 - Then you pass it to another piece of code that takes the generated code, and run it inside your wrapper (or sandbox if you will) 3 - Then, because the code is throwing exceptions, and you are able to trace some execution aspects of the original code 4 - That allows you to somehow magically determine that the generated code is infinitely recursive 5 - And because you are running the original code or a magically-selected carcass of the original code, you can make statements about the original code?
  7. A fully parallel-connected 32bit x 8 i/o x 2 op / clock running at 1.25Ghz would be even better for supercomputers, especially using optical interconnects, its just that you can build a much cheaper alternative that will for less money in a matter of months perform better out of commodity hardware... the problem with your approach by the way is the throughput. with small microcontrollers you may be able to get away with using i2c for messaging, but if you look at new gpus for example, to interconnect those at any reasonable rate you would need to look at about 256-512bit io/clock at over a gigahertz, unless you are thinking of using i2c as a job messaging and tracking bus and then utilizing a different back-bone for data? in which case, you could indeed message faster than traditional systems, but at the cost of higher complexity, and new sync issues.
  8. The halting problem is prety much a problem of finding recursion. The proposed method of "if it ever calls itself with the same value" is quite flawed, and extremely inefficient as you have to keep track of every recursion that happens, which is a lot in an infinitely-recursive program. Postulating that not every infinitely recursive program will ever call itself with the same value, and not every non-infinitely recursive program will call itself with always different values, i don't believe that the proposed method gets us any closer to the solution. Much like judging based on execution times, and instruction patterns.
  9. A Chinese olympic diver was pushed off of a sky-scraper in Beijing yesterday, but he didn't panic, straightened up and entered the ground without a splash. A monk that got tangled up in bell clapper lines, opened for the minimal techno festival on long island...
  10. Scientists have finally uncovered the secret of the centaur: what you need is a man and a very curious horse....
  11. I suppose i should do this before too late. Hi, I'm Alex! I break other people's toys. I like to know things about a lot of things...
  12. Lexical analyzer is not a shortcut, it is a part of a typical parser/compiler and it has a different purpose from replacing strings. It's purpose is to read a raw stream (typically code) and split it into identifiable lexemes. The combination of lexeme and its' identity (i.e. class) are combined into a structure typically identified as a token. Tokens are then passed to the parser to to build the parse tree. What i wrote is a simple string replacer. It is not an LA, it is simpler than an LA, and it is quick and dirty. You can do what you want to do with a combination of an LA and a much better context-aware string replacer. But it seemed like too complex of a solution for the fairly simple task at hand.
  13. Let's examine this hypothesis: Lets see http://www.theregister.co.uk/2010/05/25/cray_xe6_baker_gemini/?page=2 Cray Titan is interconnected with the Cray Gemini interconnect: So, while the jump between the four processors is less than a microsecond (and in my world of high performance networking equipment, that statement means that it will take up to a microsecond), the Gemini chip by itself introduces around 500 nanoseconds of latency internally (thats 1 second divided by 2 million), thats without any of the jumps to and from the chips, hardware latencies, table lookups, routing, and also the hops in between the cores to get to the correct device. I suspect end to end latency to be within 10-20 microseconds, this is an uninformed guess though. Lets look further, lets not even look at Cray From http://www.hpcwire.com/hpcwire/2013-06-02/full_details_uncovered_on_chinese_top_supercomputer.html Tianhe-2 (thats the fastest supercomputer in the world right now) Just to conclude: they feel that an 85 microsecond delay (end to end) is reasonable for the fastest supercomputer in the world.
  14. You know you are a geek when the first thing you do with any new program you install is attach it to a debugger. You know you are a geek when you are unanimously voted to be the Sheldon of any group of people you appear in... every time... You know you are a geek when you know the etymology of most keywords in most programming languages. You know you are a geek when you seriously ponder [Adrian Newey, Richard Stallman, Linus Torvalds, John Carmack, Tim Sweeney, Jeff Bonwick, Neil deGrasse Tyson, Lawrence Krauss, Tejun Heo, Hector Martin, Travis Goodspeed ... ] being a robot. [ probably true, WWIII, WWIII, probably true, probably true, yep, first president of the world, WW[math]-{{\hbar^2}\over{2m}}\nabla^2\Psi+V\Psi=i\hbar{{\delta\Psi}\over{\delta t}}[/math], probably wrote the kernel modules for the Linus robot hardware, would reverse and install homebrew on all of the above robots, would whip-up the hardware and software for the robots one boring afternoon...]
  15. There is a really good reason that supercomputers are switching to things like Juniper's QFabric. Not only are the interconnect speeds (throughput as well as pps, etc) relevant, latency is just as much of an issue, especially when you start spanning over a datacenter.
  16. That is not an LA, its a simple string replacer, that is a dirty, horrible (in terms of quality of code) way to do what you wanted to do very quickly, as a quick PoC. Took about 3 minutes to write, maybe 5 or so to test.
  17. Worry not, English is not my native language either. They are different technologies used with different intention. Questions you have to ask are: What format is the sensor data in? How/what is processing it and is it Hadoop-ready? Is it gigabytes total or gigabytes per second of data? What the total eventual workload is? As i have already said, NFS is technically not a distributed file system. It simply allows you to share files (or devices, since everything in linux is a file). It is not a distributed system, as in my file is located in this one box, the more boxes i add, the more shares i manage, and more i have to do to automate to limit loosing everything. Hadoop is a software framework for highly distributed systems, but not without it's limitations (at least just by itself). Hadoop doesn't store files, Hadoop doesn't act as an easily queryable database, and you have to design your project with Hadoop in mind from the beginning, your software, your data, your processing algorithms, everything has to be catered to this system. Neither of the solutions is a truly distributed (in the sense of "cloud") file system. NFS is a file system but is not distributed, Hadoop is distributed, but is not a file system...
  18. The comment was purely a reply on the usefulness of Perl, shell scripting is not the solution to the original question at hand. Also Eclipse is not a language, the perhaps incorrectly stated question at hand was what language to use. I personally find Eclipse too intrusive for everything outside of Java (for either PC or Android), and prefer lighter IDEs like Geany or just good editors with good syntax highlighting and folding like Emacs, Vim and more and more recently, Sublime. As far as functions, if i were doing this in Ruby or Python, I would just extend the String class and write the to_s or toString methods for simplicity of use later on (like automagically applying your method when you output the data in the structure). I would probably split the string, map over the array and use a hash for the lookup purpose. And this isn't much of a parser, would be more like a light version of a lexical analyzer. A very quick-hand, dirty, 2-line version in ruby would look something like: sub={'btw'=>'by the way', 'b4u'=>'before you', 'cyl'=>'catch you later'} "Bingo! btw, cyl. b4u go that is".split(' ').map{|word| term=word.downcase.gsub(/[^0-9a-z]/i, ''); (sub[term].nil?) ? word : word.downcase.gsub(term,sub[term])}.join(' ').gsub(/[.!?]\s*./, &:upcase)
  19. The perceived need for Perl goes away with Python, and/or Ruby, and/or PHP on your belt. As far as on unix command line, Bash and Sed or Awk also do the job, and you can always pipe things into grep multiple times...
  20. Since i draw a distinction between network and distributed systems (i.e. To me the fact that something communicates over a network doesn't make it distributed, distributed meaning given shares of doesn't apply to things where the share can only be given in one chunk to one device). So to me NFS is not a distributed file system, merely a network one, and Hadoop is not even a file system, it's a software development framework. In fact these things are so different from each-other that comparing the two is akin to comparing an octopus to an apple...
  21. It doesnt matter for the IDE, whatever you are most comfortable with, if none, i suggest you check out sublime (for mostly everything) or eclipse (for java). As far as languages go, any language works, pick one, and go with it, except Perl and Tcl, for the love of everything beautiful in computing, leave the old languages alone. Python, PHP, Ruby, JavaScript (biggest advantage here is that you can run your code entirely in your browser), C++, C#, Java, they all work for the purpose. You can also go to places like Udacity and Coursera, sign up for a course on programming (language-dependent or independent), and start there with learning the basics and applying them to your project...
  22. NetBeans and Eclipse are IDEs, like Visual Studio, DevC++, Emacs, Vim, NView, Geany or Sublime, any text editor with syntax highlighting will help you write your code with fewer errors. And you can build this in almost any language (some more difficult than others), this would be more trivial in scripting language
  23. If you have specific questions outside of "please do this homework for me", there are a number of well-qualified programmers on here who can help, yours truly, not excluding...
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.