As a researcher in this field not affiliated with this work, the merit is that most SLAM methods (that's essentially mapping an environment and tracking your position within it) have generally had very little understanding of the map that results. The world is most commonly a fuzzy blob of pixels or voxels.
In contrast, a human might "map" an environment in terms of salient objects, like "The potted plant" or a set of office chair. Such a semantic map has several possible advantages--- it could support more natural interactions with people, and it can serve as a powerful regularizer that prevents the robot from learning incorrect maps.
The particular method described in this paper is pretty well executed, and making a system that runs in real time with such a large amount of data is not easy. Of course, many researchers are looking at building semantic maps.
This was also the first year of the multi autonomous ground-robotic international challenge (MAGIC), in which teams of robots collaborated to perform urban recon/search-rescue type missions. This competition focused on autonomous exploration, map building, object recognition, and coordination between both the robots and the human operators. 23 teams from around the world entered the competition, with the top five finalists competing just a few weeks ago in Adelaide, Australia.
Yep, exactly. We had the least expensive robots, in part due to this sort of adaptation of existing parts. You can imagine the call to the Sears repair center, though, when we ordered 80 replacement wheels!
Many universities offer summer research opportunities for undergraduates. My robotics lab at the University of Michigan, for example, (april.eecs.umich.edu) has a large population of undergraduate researchers.
Students from under-represented backgrounds can often get help with placement (e.g., ARTSI, www.artsialliance.org).
In short, I encourage you to find labs that you are interested in working with. Keep in mind that PIs get many solicitations from potential students... as a result, it can be fairly competitive.
Having just had two seagate drives fail recently (a 750GB DB35 with an electrical failure as reported by smartctl) and a 750GB 7200.10(?) with a broken SATA connector, I recently got to experience their return policy.
I had to ship Seagate the drives FIRST, then they ship the replacements. They would cross-ship for an additional $20. I thought this was okay, if not ideal.
They did have elaborate packaging recommendations, but I wrapped the drives in bubble wrap (the same packing material newegg sent me drives in), put 'em in a box with anti-static peanuts, and sent the package via insured priority mail. The $200 insurance cost me $1.30 or something. I think I paid about $20 total for the package containing both drives.
I was promptly notified when my RMA package arrived at seagate, and replacement drives shipped the day after that with a tracking number sent via email.
They even claim to have an 'upgrade' option, where if your old 300GB drive dies, you can pay some marginal cost and have them replace it with a new model. That option was greyed out for me-- I guess my drives were too new.
All in all, I was satisfied with the return procedure.
What I'm entirely unsatisfied with is their firmware upgrade policy. I have several affected 1.5TB seagate drives, and I cannot fathom why I must contact their tech support in order to get the correct firmware. Why isn't there an auto-magic upgrade program? (Or, having not RTFA, is that what this new program is?)
Here's another factor to consider: skilled scientists do not appear out of the ether. Nor do they emerge fully formed from the head of Zeus. More often than not, they're smart (but inexperienced) young folks. They may not be native English speakers, either.
Workshops and conferences can fill a nurturing role. Poster sessions play a big role: a little encouragement and hopefully some productive feedback during the session will help them become better researchers. Of course, recognizing substantial research contributions is extremely important, but the two goals are not in conflict.
(slightly off-topic rant): The press likes to complain about how millions of dollars go to fund "ridiculous" research... like studying the DNA of bears in Alaska. From their depiction, you might think the money was being distributed to the bears by being covered with honey and shoved into hollowed trees. No, that money is going to fund graduate students, creating the next generation of researchers who will be there to drive our technology forward. The study of bear DNA might actually be really interesting, but even if it turns out to be unremarkable, those dollars still helped produce new researchers.
I find it ironic that, to establish your argument that Java hides implementation details, you used a C++ example employing operator overloading such that the mere existence of functions is utterly concealed.
If you'd like to play with solving simple substitution ciphers using both dictionary attacks and hill-climbing methods (similar to the method described in the paper), try Decrypto. It's open source, too.
The other day I had a point cloud of about 100000 points that I wanted to plot. Not having matlab installed, I decided to "just plot it in Excel for the sake of expedience".
Not only did Excel take an unfathomably long time to load the dataset, it then popped up a friendly dialog saying that I had exceeded the 32,768 row limit.
Unbelievable. Software from 2007. A 32K limit. I was completely speechless.
(In the end, I just wrote a 20 line java+opengl app, which is what I should have done in the first place.)
I can understand the motivation for the 50% minimum proposal (avoid situations where it is mathematically impossible for a student to pass a course based on poor performance early in the course), but the execution is a bit silly.
Perhaps adding a provision that any passing grade (say, better than C) on the comprehensive final will automatically result in a passing overall grade. Students who performed badly earlier in the term will always have an opportunity to show that they've learned the material and will be able to pass the course if they get their acts together. This scheme still rewards students for working harder (in order to get As and Bs), and doesn't coddle poor performance like the 50% scheme.
Re:No, it's not a split-key ergonomic keyboard
on
Review of Das Keyboard
·
· Score: 2, Informative
I bought a pair of MS Natural Ergonomic 4000s to replace my aging MS Natural Multimedia keyboards (which I really like, except for the grime accumulated over years). I'd hoped the 4000 was just a USB version.
The 4000 key action seems noticeably stiffer in general, and the space bar is particularly stiff. I'm pretty disappointed.
Throughout history, those humans with technological advantages (in every part of the world) have oppressed and brutalized other humans. It's horrible, and I'm not an apologist. But it's a human thing, not a European white thing. Humans are generally fairly deplorable creatures, but there's no rational basis supporting the notion that the evils of the world arise solely from white people.
The book Guns, Germs and Steel presents some interesting ideas on this subject. For a variety of botanical, geographical, and other non-human reasons, the middle east and europe became technological power houses and were consequently able to exercise that human habit of being evil. That technological advantage made the carnage more horrific in scale, but the same pattern was continuously repeated in other cultures.
As useful as Art of Electronics is, it's awfully dated. The particular components it spends so much time talking about are largely obsolete, and I don't think it does as good of a job at generalizing concepts as some other texts.
Don't get me wrong-- I have a copy on my desk too, but I haven't cracked the spine in years, despite being an active hardware designer.
First: If users have to read the release notes to install the product, you're going to lose users. That's not a problem if you don't need/want/care-about users, but Seti@Home is saying that they need more users. Every step that you ask of users will reduce your user base tremendously.
Second: I *did* read the damn documentation, and there's no damn "boincmgr" in the damn archive.
"Hmm", I thought. I used to run seti@home, but forgot about it a long time ago. "This seems like a good opportunity to try it out again, I'll download it!"
1. What the !@*& is BOINC? Why do I have to read about a generic distributed computing tool? Why not provide a "one-click" SETI@HOME client for those who don't give a damn about BOINC? (If that one-click package happens to use BOINC, fine.) If I later decide to learn about the wonders of BOINC, then fabulous. I'll go to the boinc web page.
2. yum search boinc --> nada. (Fedora 8 user here). That's a disappointment.
3. Download and install their little shell script / linux installer.
4. It's not a tarball? It's a shell script that uncompresses some binary blob and runs it. That's not very friendly. I find myself checking back to see if there's an md5sum or something. Nope.
5. Okay, what the hell, I run it. It does something, but there's no obvious indication of what I'm supposed to do next.
6. After poking at it for about 3 minutes, I can find no discernible way to make boinc do anything aside from sit and wait for something to do. It seems there's a "manager" that I need (in order to pick what projects I want to contribute to), but it's apparently not in the thing I downloaded. My guess is that the manager is supposed to be in there-- I can't find anything else to download. Either I've screwed up or they have.
7. rm -rf boinc*. Back to work.
I'm not trying to be a dick-- I think there are a lot of users who have a transient interest in Seti@Home. I think my willingness to try to troubleshoot this probably puts me in a minority. If you're looking for a 5 fold increase in userbase, perhaps your efforts would be well-spent streamlining the installation process. Making it so people with only a fleeting moment of interest can click *once*, and have something neat happen.
I think that Matlab's biggest strength is how it easy it is to visualize and manipulate plots. Matlab plots can be easily tweaked, enough so that they can be used as figures in academic papers. In contrast, Octave's previous use of gnuplot always felt clunky-- it was hard to get it to do exactly what you wanted, and the results were often ugly.
I will check out Octave 3's improved "graphics handle" support-- I hope it closes the gap. But for my own part, I care much less about language compatibility and more about making it really easy to visualize and explore your data.
You're right about that-- botnet owners are unlikely to be getting in to the weather forecasting business. However, there are some ridiculously parallelizable applications that *don't* require good communication networks... like breaking encryption, forging certificates, finding hash collisions...
The N80 has an absolutely bewilderingly terrible interface. It's as though they took a list of all of the configuration options, then randomly grouped them together, then randomly assorted those groups into a hierarchical set of menus three deep.
Yesterday, in fact, I wanted to change my ringtone to something loud and conspicuous so I could hear it outdoors. (I usually keep it on vibrate). I couldn't find a way to preview the ringers without actually calling the damn phone.
The N80 may have a zillion features, but if they're not easy to use they're useless. The iPhone, by all accounts, is easy (perhaps even pleasurable) to use, and that has a great appeal.
It's kind of like clock radios/alarms. I'm enraged by fancy models with a thousand buttons and options that unfathomably can only have the alarm time adjusted FORWARD. I'm delighted by my current alarm clock, which only buzzes, and only has three buttons-- but can be adjusted forward and backwards. Thoughtfulness in design counts!
The page below provides evidence that "standing on the shoulder of giants" was a common turn of phrase since the 12th century. Newton's variant is particularly pithy, and was indeed in a letter to Hooke, but I don't see any reason to think that he was mocking Hooke.
Actually, I really like the OLED display. My old series 1 had two LEDs. Power and recording. The S3's OLED display shows what two programs are being recorded, plus the time. It *is* a bit small, but I'm very happy to have it.
I seem to recall looking for--and not finding-- a win32 equivalent of pthread's condition variables. E.g., atomically release a mutex and then wait for an event. As the (excellent) pthread man page describes, this is a useful operation, often necessary to avoid a race condition.
What is the right way to do a pthread_cond_wait under win32?
Believe it or not, I do most of my profiling by running by using:
alias java-prof='java -agentlib:hprof=cpu=samples,depth=8,interval=1,thr ead=y'
And then I view the results with PerfAnal.jar (google will find it for you), an extremely old (and even ugly) GUI that is also clean and mean. It's also free (beer? not sure.)
I've tried a number of other profilers (JFluid, YAJP, etc.), and they usually prove to be too much of a pain in the ass, or just give nonsense data.
Mind you, I'm usually interested in pure CPU performance-- tightening inner loops and things like that. I don't care too much about memory profiling or garbage collector behavior since I've long since eliminated most allocations in my performance-sensitive code.
Sadly, no profiler really satisfy me. Usually, line-by-line CPU usage just can't be computed given the optimization performed by HotSpot: you'll see trace-by-trace CPU usage, where a trace covers several lines of code. It makes it hard to know exactly where the CPU time is being spent. (You can run with -Xint, but the performance is so different without HotSpot that it's not helpful.)
Sure, languages evolve, but the modern usage is an ERROR, not an evolution (the latter would generally refer to a *small* adjustment in meaning or pronunciation.) There is no value added by this "evolution", just a bunch of idiots who think they sound smart by using a construction they heard someone else say once.
Or do you think that using "effect" and "affect" (or even worse, "infer" and "imply") as synonyms is an improvement?
It's true that if we do nothing, errneous usage will become so pervasive that future humans will not realize what happened. We'd lose a colorful expression with a nuanced meaning, and we'd be worse for it.
What can we do? We can try to point out incorrect usages (politely), educating folks about the correct usage. Just as the GP did.
If the standard requires the use of a particular series of S-boxes or other operations that are known by the inventor to permit a particularly effective cryptoanalysis, then the standard has a backdoor. It is likely easier to build these into the algorithm than to discover them as a reviewer.
Additional backdoors could be part of a particular implementation, of course.
Q2 Can't be solved with matrices/linear algebra alone. There are 10 unknowns and only 5 constraints arising from the balancing. The other constraints (using #s 1-10 exactly once) are nonlinear. I haven't finished it yet.
Q3 was really easy. but very boring!
Q4 was straight-forward-- a bit tedious though. You can reason your way through about 60% of the puzzle, and then the right answer sort of pops out at you.
As a researcher in this field not affiliated with this work, the merit is that most SLAM methods (that's essentially mapping an environment and tracking your position within it) have generally had very little understanding of the map that results. The world is most commonly a fuzzy blob of pixels or voxels.
In contrast, a human might "map" an environment in terms of salient objects, like "The potted plant" or a set of office chair. Such a semantic map has several possible advantages--- it could support more natural interactions with people, and it can serve as a powerful regularizer that prevents the robot from learning incorrect maps.
The particular method described in this paper is pretty well executed, and making a system that runs in real time with such a large amount of data is not easy. Of course, many researchers are looking at building semantic maps.
This was also the first year of the multi autonomous ground-robotic international challenge (MAGIC), in which teams of robots collaborated to perform urban recon/search-rescue type missions. This competition focused on autonomous exploration, map building, object recognition, and coordination between both the robots and the human operators. 23 teams from around the world entered the competition, with the top five finalists competing just a few weeks ago in Adelaide, Australia.
http://en.wikipedia.org/wiki/Multi_Autonomous_Ground-robotic_International_Challenge
It was also covered on slashdot:
http://tech.slashdot.org/article.pl?sid=10/11/19/004203
And Team Michigan, from the University of Michigan, took first place and $750k in prize money. (Forgive my obvious bias, I'm the team leader :)
http://april.eecs.umich.edu/magic/
Yep, exactly. We had the least expensive robots, in part due to this sort of adaptation of existing parts. You can imagine the call to the Sears repair center, though, when we ordered 80 replacement wheels!
Ed
Team Michigan
Many universities offer summer research opportunities for undergraduates. My robotics lab at the University of Michigan, for example, (april.eecs.umich.edu) has a large population of undergraduate researchers.
Students from under-represented backgrounds can often get help with placement (e.g., ARTSI, www.artsialliance.org).
In short, I encourage you to find labs that you are interested in working with. Keep in mind that PIs get many solicitations from potential students... as a result, it can be fairly competitive.
Having just had two seagate drives fail recently (a 750GB DB35 with an electrical failure as reported by smartctl) and a 750GB 7200.10(?) with a broken SATA connector, I recently got to experience their return policy.
I had to ship Seagate the drives FIRST, then they ship the replacements. They would cross-ship for an additional $20. I thought this was okay, if not ideal.
They did have elaborate packaging recommendations, but I wrapped the drives in bubble wrap (the same packing material newegg sent me drives in), put 'em in a box with anti-static peanuts, and sent the package via insured priority mail. The $200 insurance cost me $1.30 or something. I think I paid about $20 total for the package containing both drives.
I was promptly notified when my RMA package arrived at seagate, and replacement drives shipped the day after that with a tracking number sent via email.
They even claim to have an 'upgrade' option, where if your old 300GB drive dies, you can pay some marginal cost and have them replace it with a new model. That option was greyed out for me-- I guess my drives were too new.
All in all, I was satisfied with the return procedure.
What I'm entirely unsatisfied with is their firmware upgrade policy. I have several affected 1.5TB seagate drives, and I cannot fathom why I must contact their tech support in order to get the correct firmware. Why isn't there an auto-magic upgrade program? (Or, having not RTFA, is that what this new program is?)
Here's another factor to consider: skilled scientists do not appear out of the ether. Nor do they emerge fully formed from the head of Zeus. More often than not, they're smart (but inexperienced) young folks. They may not be native English speakers, either.
Workshops and conferences can fill a nurturing role. Poster sessions play a big role: a little encouragement and hopefully some productive feedback during the session will help them become better researchers. Of course, recognizing substantial research contributions is extremely important, but the two goals are not in conflict.
(slightly off-topic rant): The press likes to complain about how millions of dollars go to fund "ridiculous" research... like studying the DNA of bears in Alaska. From their depiction, you might think the money was being distributed to the bears by being covered with honey and shoved into hollowed trees. No, that money is going to fund graduate students, creating the next generation of researchers who will be there to drive our technology forward. The study of bear DNA might actually be really interesting, but even if it turns out to be unremarkable, those dollars still helped produce new researchers.
I find it ironic that, to establish your argument that Java hides implementation details, you used a C++ example employing operator overloading such that the mere existence of functions is utterly concealed.
If you'd like to play with solving simple substitution ciphers using both dictionary attacks and hill-climbing methods (similar to the method described in the paper), try Decrypto. It's open source, too.
http://www.blisstonia.com/software/Decrypto
The other day I had a point cloud of about 100000 points that I wanted to plot. Not having matlab installed, I decided to "just plot it in Excel for the sake of expedience".
Not only did Excel take an unfathomably long time to load the dataset, it then popped up a friendly dialog saying that I had exceeded the 32,768 row limit.
Unbelievable. Software from 2007. A 32K limit. I was completely speechless.
(In the end, I just wrote a 20 line java+opengl app, which is what I should have done in the first place.)
I can understand the motivation for the 50% minimum proposal (avoid situations where it is mathematically impossible for a student to pass a course based on poor performance early in the course), but the execution is a bit silly.
Perhaps adding a provision that any passing grade (say, better than C) on the comprehensive final will automatically result in a passing overall grade. Students who performed badly earlier in the term will always have an opportunity to show that they've learned the material and will be able to pass the course if they get their acts together. This scheme still rewards students for working harder (in order to get As and Bs), and doesn't coddle poor performance like the 50% scheme.
I bought a pair of MS Natural Ergonomic 4000s to replace my aging MS Natural Multimedia keyboards (which I really like, except for the grime accumulated over years). I'd hoped the 4000 was just a USB version.
The 4000 key action seems noticeably stiffer in general, and the space bar is particularly stiff. I'm pretty disappointed.
-Ed
Rant detected. Feel better?
Throughout history, those humans with technological advantages (in every part of the world) have oppressed and brutalized other humans. It's horrible, and I'm not an apologist. But it's a human thing, not a European white thing. Humans are generally fairly deplorable creatures, but there's no rational basis supporting the notion that the evils of the world arise solely from white people.
The book Guns, Germs and Steel presents some interesting ideas on this subject. For a variety of botanical, geographical, and other non-human reasons, the middle east and europe became technological power houses and were consequently able to exercise that human habit of being evil. That technological advantage made the carnage more horrific in scale, but the same pattern was continuously repeated in other cultures.
As useful as Art of Electronics is, it's awfully dated. The particular components it spends so much time talking about are largely obsolete, and I don't think it does as good of a job at generalizing concepts as some other texts.
Don't get me wrong-- I have a copy on my desk too, but I haven't cracked the spine in years, despite being an active hardware designer.
You've made my point. Twice.
First: If users have to read the release notes to install the product, you're going to lose users. That's not a problem if you don't need/want/care-about users, but Seti@Home is saying that they need more users. Every step that you ask of users will reduce your user base tremendously.
Second: I *did* read the damn documentation, and there's no damn "boincmgr" in the damn archive.
"Hmm", I thought. I used to run seti@home, but forgot about it a long time ago. "This seems like a good opportunity to try it out again, I'll download it!"
1. What the !@*& is BOINC? Why do I have to read about a generic distributed computing tool? Why not provide a "one-click" SETI@HOME client for those who don't give a damn about BOINC? (If that one-click package happens to use BOINC, fine.) If I later decide to learn about the wonders of BOINC, then fabulous. I'll go to the boinc web page.
2. yum search boinc --> nada. (Fedora 8 user here). That's a disappointment.
3. Download and install their little shell script / linux installer.
4. It's not a tarball? It's a shell script that uncompresses some binary blob and runs it. That's not very friendly. I find myself checking back to see if there's an md5sum or something. Nope.
5. Okay, what the hell, I run it. It does something, but there's no obvious indication of what I'm supposed to do next.
6. After poking at it for about 3 minutes, I can find no discernible way to make boinc do anything aside from sit and wait for something to do. It seems there's a "manager" that I need (in order to pick what projects I want to contribute to), but it's apparently not in the thing I downloaded. My guess is that the manager is supposed to be in there-- I can't find anything else to download. Either I've screwed up or they have.
7. rm -rf boinc*. Back to work.
I'm not trying to be a dick-- I think there are a lot of users who have a transient interest in Seti@Home. I think my willingness to try to troubleshoot this probably puts me in a minority. If you're looking for a 5 fold increase in userbase, perhaps your efforts would be well-spent streamlining the installation process. Making it so people with only a fleeting moment of interest can click *once*, and have something neat happen.
I think that Matlab's biggest strength is how it easy it is to visualize and manipulate plots. Matlab plots can be easily tweaked, enough so that they can be used as figures in academic papers. In contrast, Octave's previous use of gnuplot always felt clunky-- it was hard to get it to do exactly what you wanted, and the results were often ugly.
I will check out Octave 3's improved "graphics handle" support-- I hope it closes the gap. But for my own part, I care much less about language compatibility and more about making it really easy to visualize and explore your data.
-Ed
You're right about that-- botnet owners are unlikely to be getting in to the weather forecasting business. However, there are some ridiculously parallelizable applications that *don't* require good communication networks... like breaking encryption, forging certificates, finding hash collisions...
I agree!
The N80 has an absolutely bewilderingly terrible interface. It's as though they took a list of all of the configuration options, then randomly grouped them together, then randomly assorted those groups into a hierarchical set of menus three deep.
Yesterday, in fact, I wanted to change my ringtone to something loud and conspicuous so I could hear it outdoors. (I usually keep it on vibrate). I couldn't find a way to preview the ringers without actually calling the damn phone.
The N80 may have a zillion features, but if they're not easy to use they're useless. The iPhone, by all accounts, is easy (perhaps even pleasurable) to use, and that has a great appeal.
It's kind of like clock radios/alarms. I'm enraged by fancy models with a thousand buttons and options that unfathomably can only have the alarm time adjusted FORWARD. I'm delighted by my current alarm clock, which only buzzes, and only has three buttons-- but can be adjusted forward and backwards. Thoughtfulness in design counts!
The page below provides evidence that "standing on the shoulder of giants" was a common turn of phrase since the 12th century. Newton's variant is particularly pithy, and was indeed in a letter to Hooke, but I don't see any reason to think that he was mocking Hooke.
2 b.shtml
http://www.aerospaceweb.org/question/history/q016
Actually, I really like the OLED display. My old series 1 had two LEDs. Power and recording. The S3's OLED display shows what two programs are being recorded, plus the time. It *is* a bit small, but I'm very happy to have it.
I seem to recall looking for--and not finding-- a win32 equivalent of pthread's condition variables. E.g., atomically release a mutex and then wait for an event. As the (excellent) pthread man page describes, this is a useful operation, often necessary to avoid a race condition.
What is the right way to do a pthread_cond_wait under win32?
Believe it or not, I do most of my profiling by running by using:
r ead=y'
alias java-prof='java -agentlib:hprof=cpu=samples,depth=8,interval=1,th
And then I view the results with PerfAnal.jar (google will find it for you), an extremely old (and even ugly) GUI that is also clean and mean. It's also free (beer? not sure.)
I've tried a number of other profilers (JFluid, YAJP, etc.), and they usually prove to be too much of a pain in the ass, or just give nonsense data.
Mind you, I'm usually interested in pure CPU performance-- tightening inner loops and things like that. I don't care too much about memory profiling or garbage collector behavior since I've long since eliminated most allocations in my performance-sensitive code.
Sadly, no profiler really satisfy me. Usually, line-by-line CPU usage just can't be computed given the optimization performed by HotSpot: you'll see trace-by-trace CPU usage, where a trace covers several lines of code. It makes it hard to know exactly where the CPU time is being spent. (You can run with -Xint, but the performance is so different without HotSpot that it's not helpful.)
Sure, languages evolve, but the modern usage is an ERROR, not an evolution (the latter would generally refer to a *small* adjustment in meaning or pronunciation.) There is no value added by this "evolution", just a bunch of idiots who think they sound smart by using a construction they heard someone else say once.
Or do you think that using "effect" and "affect" (or even worse, "infer" and "imply") as synonyms is an improvement?
It's true that if we do nothing, errneous usage will become so pervasive that future humans will not realize what happened. We'd lose a colorful expression with a nuanced meaning, and we'd be worse for it.
What can we do? We can try to point out incorrect usages (politely), educating folks about the correct usage. Just as the GP did.
Nonsense.
If the standard requires the use of a particular series of S-boxes or other operations that are known by the inventor to permit a particularly effective cryptoanalysis, then the standard has a backdoor. It is likely easier to build these into the algorithm than to discover them as a reviewer.
Additional backdoors could be part of a particular implementation, of course.
Q1 Sudoku was really easy.
Q2 Can't be solved with matrices/linear algebra alone. There are 10 unknowns and only 5 constraints arising from the balancing. The other constraints (using #s 1-10 exactly once) are nonlinear. I haven't finished it yet.
Q3 was really easy. but very boring!
Q4 was straight-forward-- a bit tedious though. You can reason your way through about 60% of the puzzle, and then the right answer sort of pops out at you.
Q5 seems annoying; I didn't try it.