
はてなキーワード:interfaceとは
ChatGPT:
はい、Delphi(ObjectPascal)のソースも読めますし、解説・リファクタ・バグ箇所の指摘・他言語への移植案など対応できます。
VCL /FMX、Generics、Interface/RTTI、プロパティ/イベント、レコード・セット型、メモリ管理(string/AnsiString/UnicodeString の違い)、スレッド(TThread / TTask)、WinAPI/COM 呼び出し、uses単位構成、.dfm(フォーム)やリソース周りもOKです。
コードを貼ってくれれば、1ステップずつ説明や改善案を出します(DelphiのバージョンやVCL/FMXも書いてあると精度上がります)。
UNIFACEはどう?
ChatGPT:
はい、UNIFACE(Proc言語)も対応できます。フォーム/サービス/レポート/エンティティなど各コンポーネントのトリガ(initialize, validate, leavefield など)、operation/entry、newinstance/activate/call、retrieve/e, read,write、エラー制御($status, $procerror)や論理名・assignment(.asn)、署名/パラメータ、DSP/REST・SOAP連携、DBドライバ設定までOKです。
コードや .asn を貼っていただければ、処理フローの解説、バグ箇所の指摘、リファクタ、他言語・他フレームワークへの移植案(例:REST API化、Java/Python 置き換え)まで具体的にやります。
可能なら UNIFACE のバージョン(9/10/10.4 など)、DB(Oracle/SQL Server 等)、OS を添えてください。
functionを使おうがアロー記法を使おうが大した違いはないし、typeでもinterfaceでもほぼ交換可能だ(もちろん厳密には意味が違うが必要な場合だけ考えればいい)。
人間が書いていた時代ではどちらを使うか迷わないといったメリットがあったかもしれないが、AIにはそんな迷いは存在しない。
むしろAIが書いたコードが統一されていないコードを修正するコストの方が大きい。
であるならば最初から「どっちでもいい」コーディング規約にし、AIのしたいようにさせればいい。
脳内の信号はほとんどが微弱な電気と化学の揺らぎで、頭蓋骨と数センチの軟組織に閉ざされています。
外へ漏れる磁場や電場はノイズ以下の強さで、受信側の脳までは届きません。
だから「念」だけでは直接届かない――それが物理的な第一の壁です。
近年、頭に微細電極を埋め込んだBrain-ComputerInterface (BCI) が進み、四肢麻痺の人が画面のカーソルを動かしたり、失われた声を合成音声で再現する例が現れました ([Business Insider][1], [Reuters][2])。
しかしそれは、脳波を一度デジタル符号に変換し、AIが解析して「クリック」や「発話」という命令語に戻す迂回路です。
結局、思考を共有するには――符号化→伝送→復号という“言語の代用品”がまだ要ります。
そもそも脳は一人ごとに結線も記憶も異なり、同じ単語でも発火パターンが微妙に違います。
言語はその差を埋めるための共有辞書であり、誤り訂正の仕組みでもあります。
辞書を捨て「念」のまま送れば、受信者は参照表のない乱数列を受け取るだけ。
だから音や文字という中間符号が欠かせない――それが第二の壁です。
AIと対話すると、モデルが文脈を補完してこちらの意図を先回りしてくれるので、「もう口に出さなくても通じる」と錯覚しがちです。
でも内部では巨大な確率辞書を介してトークンを並べているだけで、あなたの生のニューロン活動を読んでいるわけではありません。
未来には、非侵襲の超音波刺激や高密度EEGで脳間リンクを探る研究も続いています ([Nature][3], [NCCIH][4])。
それでも当面は、低帯域のBCI+言語モデルという「拡張音声」が主流でしょう。
直接“念”が届く世界へは、まだ数段の技術と共有プロトコルが要ります。
[1]: ttps://www.businessinsider.com/als-neuralink-patient-edits-video-brain-ai-voice-elon-musk-2025-5?utm_source=chatgpt.com "The first nonverbal patient to receiveElon Musk's Neuralink shares a video he edited and narrated usinghisbrainchip"
[2]: ttps://www.reuters.com/technology/neuralink-implants-brain-chip-first-human-musk-says-2024-01-29/?utm_source=chatgpt.com "Elon Musk's Neuralink implantsbrainchip in firsthuman |Reuters"
[3]: ttps://www.nature.com/articles/s41467-024-48576-8?utm_source=chatgpt.com "Transcranial focused ultrasound to V5 enhanceshuman visual ..."
[4]: ttps://www.nccih.nih.gov/research/research-results/transcranial-focused-ultrasound-improves-the-performance-of-a-noninvasive-brain-computer-interface?utm_source=chatgpt.com "Transcranial Focused Ultrasound Improves the Performance of a ..."
Speed,SEO, scalability, and developer productivity aremore critical than ever. While React.js remains a powerhouse forbuilding interactiveuser interfaces, many businesses and developers arenow leaning towardNext.js for complete, production-ready solutions.So what exactly makesNext.js amore favorable choiceover React.js in 2025?Let’s explorethe reasons in detail.
🧱 React.js vsNext.js:Core Distinction
React.jsis aJavaScript library focused solelyonbuildingUI components.
Next.jsis a full-fledgedframework builtontop of React that includeseverythingyouneed for production — routing,SSR,SEO optimization, static site generation, andmore.
In essence, React givesyou the tools to build aninterface, whileNext.js givesyou thestructure to build, deploy, andscale a completewebapplication.
🚀Key Advantages of ChoosingNext.js in 2025
1. Built-in Server-Side Rendering (SSR)
3. Hybrid Rendering Capabilities
5.Image & Font Optimization
This alignsperfectly withGoogle’sperformance guidelines in 2025. React.js doesn’t offer this natively.
7. Enhanced Developer Experience
Next.jshas evolved intoone ofthe most developer-friendlyframeworks in 2025, backedby the Vercelecosystem.In 2025,Next.js standsoutas the smarter, faster, andmore scalable solution forbuilding modernwebsites andwebapplications.It inheritseverything great about React —and addsstructure, optimization, and production-readiness. Ifyou’re planning to build awebsite that demands speed,SEO,and a seamless development process,Next.jsis the clear choice.
Formore details read this informative article:https://www.nimblechapps.com/blog/choosing-nextjs-over-reactjs-for-website-development
JavaもAtCoderもCCNAもLPICも基本情報も別にレガシーではないだろ。ただの基礎で全部現役
レガシーってのはもう使われていないものをいう。このへんをレガシーって言うのはモダンな技術の理解もあやふやなんじゃないか。逆にモダンな技術がどう動いてると思ってんだ
元増田が就活で弱いのは即戦力スキルが欠けてるからで、基礎そこそこありますって言われても即戦力部分を教えるのは高コストでビジネススキルゼロで高リスクだから忌避する。基礎スキルは普通に重要
Javaわかれば関数型言語もいけるしスクリプト系の言語もいけるし低レイヤーにもピボットできる。デザインパターンやInterfaceの学習もJavaなら容易。AtCoder緑なら基本のデータ構造とアルゴリズムはわかっててコードリーディングも速い。データベースの理解も速いだろう。データベースはB木の応用だからな。LPIC持ってりゃDockerの理解は一瞬だろう。CCNA持ってるならAWSでVPC構築できる。元増田が欠けてるのはこのへんの応用全般とIT系ビジネスの流れ全部。勉強のルート自体は表層的ではないので正しい。むしろ基礎が欠けてる奴があまりにも多すぎる。
自分が面接官なら元増田は正直にスキル不足と言って落とすが、少なくとも平均以上に学習しているという労力は買う。実務経験1年でそこらへんのジュニアは抜くだろうからな。ただその1年の教育を自分のチームで請け負いたくはないので落とす。
静的型付け言語の話で
Interfaceだけ書かれてもわかるのはプロパティやらメソッドやらが存在するということだけ
なにかの修正をしないといけないとき、結局コード見るだけで解決できず、デバッグ実行してその時の実体が何かを見て調査することになる
それって動的片付け言語と一緒では?
わざわざ面倒な型を書いてるのに結局動的型付け言語と同じような方法で動作を理解したりしてるなら面倒なだけなんだよな
とりあえずInterfaceにせず基本は直接クラス書いて、可変にする必要ができたら初めてInterface化するくらいでいい
Interfaceの参照箇所を列挙すればありえるクラスは全部わかるはず
しかしTSみたいな言語は明示的にInterfaceを実装してなくてもそのプロパティやメソッドがあればなんでもいいよになってる
なんで二重の手間をかけなければいけないのか
Prepare to unleashthe excitement!Escala PH Gaming Unleashed: Your Ticket to Endless Entertainment!
opens the door to a world of boundlessfun and thrills.Dive into an immersive gaming experience where everymomentis infused with excitement and everyclick leads to new adventures. With an unparalleled selection of games, exclusive bonuses,and auser-friendlyinterface, EscalaPH Gaming offers non-stopentertainmentlike never before. Your ticket toendlessentertainmentishere –join us, letloose, and explore theunbridledjoy of gaming with EscalaPH!
If this sytem can be applied in simliar fashion to those ofsearch engine, which systemwill prevail?
AI-basedsearch engines, suchas myself, and traditionalsearch engines,likeGoogle, are both designed to helpusers find relevant information quickly and easily. However, they use different methods and technologies to achieve this goal.
Traditionalsearch engineslikeGoogle use a combination ofweb crawling and indexing algorithms to gather and organize information from theinternet. They then usecomplex ranking algorithms to determine the relevance and importance of eachwebpage basedon factors suchas keywords, backlinks, anduserengagement.
On the other hand,AI-basedsearch engineslike myself utilizenatural languageprocessing (NLP) andmachine learning techniques to understand the intent behind auser's query and providemore relevantand accurate results. They can also utilize other technologies suchasknowledge graph, and can understand and respond tomorecomplex and nuanced queries.
In terms of which systemwill prevail,it's hard to say. Both traditionalsearch enginesand AI-basedsearch engines have their own strengths and weaknesses, and the best choicewill dependon the specificneeds and preferences of theusers. Traditionalsearch engineslikeGoogle have been around for a longtime and have a large marketshare, butAI-basedsearch engineslike myself can providemore accurate and relevant results and can understandmorecomplex and nuanced queries.
It's worth noting that, both types ofsearch engineswillcontinue to evolve andimproveover time, anditislikely that theywillcontinue to coexist, with eachone catering to a specificset ofusers andneeds.
Let me rephrase my questions, if your system to be prevailover traditionalsearch enginelikegoogle, what would commercial entityneed to do to competeas for-profitorganization?
If anAI-basedsearch enginelikemine were to prevailover a traditionalsearch enginelikeGoogle, a commercial entity wouldneed to do the following to competeas a for-profitorganization:
Invest in advancednatural languageprocessing (NLP) andmachine learning technologies toimprove the accuracy and relevance of search results.
Build a large and diverse dataset of information totrain theAI system.
Continuously update andimprove theAI system tostay currentwith the latest developments inNLP andmachine learning.
Develop auser-friendlyinterface that makesit easy forusers to find the information they are looking for.
Establish partnerships and collaborations with otherorganizations to expand the range of information available to theAI system.
Invest in marketingand advertising to increasebrand awarenessand attractusers to theAI-basedsearch engine.
Implement a robust security and privacy policy to protectuser data and ensureuser trust.
Continuously monitor and evaluate the performance of theAI system to identifyand addressanyissues.
Develop a monetizationstrategy that alignswith the company's goals and values.
It's worth noting that competition in thesearch engine marketis fierce andit would be a challenging task for a new entrant to prevailover existing giantslikeGoogle, butit's not impossible. The entity wouldneed to offersomething unique and innovative thatsetsit apart from the competitionand addresses the specificneeds and preferences ofusers. Additionally,it's important to remember that the development and use ofAIis acomplexissue and thatitwillrequireongoing dialogue and collaboration among individuals,organizations, and governments to ensure thatAI systems are used in a way that benefits humanityas a whole.
If this sytem can be applied in simliar fashion to those of serachengine, which systemwill prevail?
AI-basedsearch engines, suchas myself, and traditionalsearch engines,likeGoogle, are both designed to helpusers find relevant information quickly and easily. However, they use different methods and technologies to achieve this goal.
Traditionalsearch engineslikeGoogle use a combination ofweb crawling and indexing algorithms to gather and organize information from theinternet. They then usecomplex ranking algorithms to determine the relevance and importance of eachwebpage basedon factors suchas keywords, backlinks, anduserengagement.
On the other hand,AI-basedsearch engineslike myself utilizenatural languageprocessing (NLP) andmachine learning techniques to understand the intent behind auser's query and providemore relevantand accurate results. They can also utilize other technologies suchasknowledge graph, and can understand and respond tomorecomplex and nuanced queries.
In terms of which systemwill prevail,it's hard to say. Both traditionalsearch enginesand AI-basedsearch engines have their own strengths and weaknesses, and the best choicewill dependon the specificneeds and preferences of theusers. Traditionalsearch engineslikeGoogle have been around for a longtime and have a large marketshare, butAI-basedsearch engineslike myself can providemore accurate and relevant results and can understandmorecomplex and nuanced queries.
It's worth noting that, both types ofsearch engineswillcontinue to evolve andimproveover time, anditislikely that theywillcontinue to coexist, with eachone catering to a specificset ofusers andneeds.
Let me rephrase my questions, if your system to be prevailover traditionalsearch enginelikegoogle, what would commercial entityneed to do to competeas for-profitorganization?
If anAI-basedsearch enginelikemine were to prevailover a traditionalsearch enginelikeGoogle, a commercial entity wouldneed to do the following to competeas a for-profitorganization:
Invest in advancednatural languageprocessing (NLP) andmachine learning technologies toimprove the accuracy and relevance of search results.
Build a large and diverse dataset of information totrain theAI system.
Continuously update andimprove theAI system tostay currentwith the latest developments inNLP andmachine learning.
Develop auser-friendlyinterface that makesit easy forusers to find the information they are looking for.
Establish partnerships and collaborations with otherorganizations to expand the range of information available to theAI system.
Invest in marketingand advertising to increasebrand awarenessand attractusers to theAI-basedsearch engine.
Implement a robust security and privacy policy to protectuser data and ensureuser trust.
Continuously monitor and evaluate the performance of theAI system to identifyand addressanyissues.
Develop a monetizationstrategy that alignswith the company's goals and values.
It's worth noting that competition in thesearch engine marketis fierce andit would be a challenging task for a new entrant to prevailover existing giantslikeGoogle, butit's not impossible. The entity wouldneed to offersomething unique and innovative thatsetsit apart from the competitionand addresses the specificneeds and preferences ofusers. Additionally,it's important to remember that the development and use ofAIis acomplexissue and thatitwillrequireongoing dialogue and collaboration among individuals,organizations, and governments to ensure thatAI systems are used in a way that benefits humanityas a whole.
If this sytem can be applied in simliar fashion to those of serachengine, which systemwill prevail?
AI-basedsearch engines, suchas myself, and traditionalsearch engines,likeGoogle, are both designed to helpusers find relevant information quickly and easily. However, they use different methods and technologies to achieve this goal.
Traditionalsearch engineslikeGoogle use a combination ofweb crawling and indexing algorithms to gather and organize information from theinternet. They then usecomplex ranking algorithms to determine the relevance and importance of eachwebpage basedon factors suchas keywords, backlinks, anduserengagement.
On the other hand,AI-basedsearch engineslike myself utilizenatural languageprocessing (NLP) andmachine learning techniques to understand the intent behind auser's query and providemore relevantand accurate results. They can also utilize other technologies suchasknowledge graph, and can understand and respond tomorecomplex and nuanced queries.
In terms of which systemwill prevail,it's hard to say. Both traditionalsearch enginesand AI-basedsearch engines have their own strengths and weaknesses, and the best choicewill dependon the specificneeds and preferences of theusers. Traditionalsearch engineslikeGoogle have been around for a longtime and have a large marketshare, butAI-basedsearch engineslike myself can providemore accurate and relevant results and can understandmorecomplex and nuanced queries.
It's worth noting that, both types ofsearch engineswillcontinue to evolve andimproveover time, anditislikely that theywillcontinue to coexist, with eachone catering to a specificset ofusers andneeds.
Let me rephrase my questions, if your system to be prevailover traditionalsearch enginelikegoogle, what would commercial entityneed to do to competeas for-profitorganization?
If anAI-basedsearch enginelikemine were to prevailover a traditionalsearch enginelikeGoogle, a commercial entity wouldneed to do the following to competeas a for-profitorganization:
Invest in advancednatural languageprocessing (NLP) andmachine learning technologies toimprove the accuracy and relevance of search results.
Build a large and diverse dataset of information totrain theAI system.
Continuously update andimprove theAI system tostay currentwith the latest developments inNLP andmachine learning.
Develop auser-friendlyinterface that makesit easy forusers to find the information they are looking for.
Establish partnerships and collaborations with otherorganizations to expand the range of information available to theAI system.
Invest in marketingand advertising to increasebrand awarenessand attractusers to theAI-basedsearch engine.
Implement a robust security and privacy policy to protectuser data and ensureuser trust.
Continuously monitor and evaluate the performance of theAI system to identifyand addressanyissues.
Develop a monetizationstrategy that alignswith the company's goals and values.
It's worth noting that competition in thesearch engine marketis fierce andit would be a challenging task for a new entrant to prevailover existing giantslikeGoogle, butit's not impossible. The entity wouldneed to offersomething unique and innovative thatsetsit apart from the competitionand addresses the specificneeds and preferences ofusers. Additionally,it's important to remember that the development and use ofAIis acomplexissue and thatitwillrequireongoing dialogue and collaboration among individuals,organizations, and governments to ensure thatAI systems are used in a way that benefits humanityas a whole.
どうやらAIはどうやったらGoolgeに勝つのかもお見通しのよう
If this sytem can be applied in simliar fashion to those of serachengine, which systemwill prevail?
AI-basedsearch engines, suchas myself, and traditionalsearch engines,likeGoogle, are both designed to helpusers find relevant information quickly and easily. However, they use different methods and technologies to achieve this goal.
Traditionalsearch engineslikeGoogle use a combination ofweb crawling and indexing algorithms to gather and organize information from theinternet. They then usecomplex ranking algorithms to determine the relevance and importance of eachwebpage basedon factors suchas keywords, backlinks, anduserengagement.
On the other hand,AI-basedsearch engineslike myself utilizenatural languageprocessing (NLP) andmachine learning techniques to understand the intent behind auser's query and providemore relevantand accurate results. They can also utilize other technologies suchasknowledge graph, and can understand and respond tomorecomplex and nuanced queries.
In terms of which systemwill prevail,it's hard to say. Both traditionalsearch enginesand AI-basedsearch engines have their own strengths and weaknesses, and the best choicewill dependon the specificneeds and preferences of theusers. Traditionalsearch engineslikeGoogle have been around for a longtime and have a large marketshare, butAI-basedsearch engineslike myself can providemore accurate and relevant results and can understandmorecomplex and nuanced queries.
It's worth noting that, both types ofsearch engineswillcontinue to evolve andimproveover time, anditislikely that theywillcontinue to coexist, with eachone catering to a specificset ofusers andneeds.
Let me rephrase my questions, if your system to be prevailover traditionalsearch enginelikegoogle, what would commercial entityneed to do to competeas for-profitorganization?
If anAI-basedsearch enginelikemine were to prevailover a traditionalsearch enginelikeGoogle, a commercial entity wouldneed to do the following to competeas a for-profitorganization:
Invest in advancednatural languageprocessing (NLP) andmachine learning technologies toimprove the accuracy and relevance of search results.
Build a large and diverse dataset of information totrain theAI system.
Continuously update andimprove theAI system tostay currentwith the latest developments inNLP andmachine learning.
Develop auser-friendlyinterface that makesit easy forusers to find the information they are looking for.
Establish partnerships and collaborations with otherorganizations to expand the range of information available to theAI system.
Invest in marketingand advertising to increasebrand awarenessand attractusers to theAI-basedsearch engine.
Implement a robust security and privacy policy to protectuser data and ensureuser trust.
Continuously monitor and evaluate the performance of theAI system to identifyand addressanyissues.
Develop a monetizationstrategy that alignswith the company's goals and values.
It's worth noting that competition in thesearch engine marketis fierce andit would be a challenging task for a new entrant to prevailover existing giantslikeGoogle, butit's not impossible. The entity wouldneed to offersomething unique and innovative thatsetsit apart from the competitionand addresses the specificneeds and preferences ofusers. Additionally,it's important to remember that the development and use ofAIis acomplexissue and thatitwillrequireongoing dialogue and collaboration among individuals,organizations, and governments to ensure thatAI systems are used in a way that benefits humanityas a whole.
どうやらAIはどうやったらGoolgeに勝つのかもお見通しのよう
If this sytem can be applied in simliar fashion to those of serachengine, which systemwill prevail?
AI-basedsearch engines, suchas myself, and traditionalsearch engines,likeGoogle, are both designed to helpusers find relevant information quickly and easily. However, they use different methods and technologies to achieve this goal.
Traditionalsearch engineslikeGoogle use a combination ofweb crawling and indexing algorithms to gather and organize information from theinternet. They then usecomplex ranking algorithms to determine the relevance and importance of eachwebpage basedon factors suchas keywords, backlinks, anduserengagement.
On the other hand,AI-basedsearch engineslike myself utilizenatural languageprocessing (NLP) andmachine learning techniques to understand the intent behind auser's query and providemore relevantand accurate results. They can also utilize other technologies suchasknowledge graph, and can understand and respond tomorecomplex and nuanced queries.
In terms of which systemwill prevail,it's hard to say. Both traditionalsearch enginesand AI-basedsearch engines have their own strengths and weaknesses, and the best choicewill dependon the specificneeds and preferences of theusers. Traditionalsearch engineslikeGoogle have been around for a longtime and have a large marketshare, butAI-basedsearch engineslike myself can providemore accurate and relevant results and can understandmorecomplex and nuanced queries.
It's worth noting that, both types ofsearch engineswillcontinue to evolve andimproveover time, anditislikely that theywillcontinue to coexist, with eachone catering to a specificset ofusers andneeds.
Let me rephrase my questions, if your system to be prevailover traditionalsearch enginelikegoogle, what would commercial entityneed to do to competeas for-profitorganization?
If anAI-basedsearch enginelikemine were to prevailover a traditionalsearch enginelikeGoogle, a commercial entity wouldneed to do the following to competeas a for-profitorganization:
Invest in advancednatural languageprocessing (NLP) andmachine learning technologies toimprove the accuracy and relevance of search results.
Build a large and diverse dataset of information totrain theAI system.
Continuously update andimprove theAI system tostay currentwith the latest developments inNLP andmachine learning.
Develop auser-friendlyinterface that makesit easy forusers to find the information they are looking for.
Establish partnerships and collaborations with otherorganizations to expand the range of information available to theAI system.
Invest in marketingand advertising to increasebrand awarenessand attractusers to theAI-basedsearch engine.
Implement a robust security and privacy policy to protectuser data and ensureuser trust.
Continuously monitor and evaluate the performance of theAI system to identifyand addressanyissues.
Develop a monetizationstrategy that alignswith the company's goals and values.
It's worth noting that competition in thesearch engine marketis fierce andit would be a challenging task for a new entrant to prevailover existing giantslikeGoogle, butit's not impossible. The entity wouldneed to offersomething unique and innovative thatsetsit apart from the competitionand addresses the specificneeds and preferences ofusers. Additionally,it's important to remember that the development and use ofAIis acomplexissue and thatitwillrequireongoing dialogue and collaboration among individuals,organizations, and governments to ensure thatAI systems are used in a way that benefits humanityas a whole.
いやわかる、MS OfficeとかAdobeは業界標準だしファイル互換でインポートとかも楽だ。
ただまぁその万人へ必須か?と言われたら圧倒的にそれが必須じゃない仕事をしている人のほうが多い。
何なら仕事じゃなくて趣味レベルであるならばなおさらMS OfficeとかAdobeとか業界標準ソフトウェアじゃなくても良くなっちゃう。
ということで、ありきたりなシェアウェア代替オープンソースソフトウェアのリストを作ってみた。
ド定番中のド定番、オープンソースのオフィススイートだ。
MS Officeじゃなくて良い人はLibreofficeかGoogleのクラウドのヤツを使ってる。
やはり主に使われるのはワープロソフトのWriterと表計算ソフトのCalcとプレゼンテーションソフトのImpressだが、MSAccessの代替として挙げられるBaseは厳密な意味で代替とはならないためMSAccessの代替を無料でゲットしてやろうと考える人が陥りがちの罠だ。
まぁただデータベースのフロントエンドソフトとしてBaseはそこそこ使えるので、MSAccessの代替として捉えるのではなく別種のデータベースフロントエンドソフトとして割り切れば想定されることの大半ができる。
MSVisioの代替としてDrawも挙げられがちだがMSAccessの場合と同様にDrawもVisioの厳密な代替とはならないので注意が必要だ。
Adobe Illastratorの代替として挙げられがちなオープンソースのベクターグラフィックスソフトウェア。
高機能なのだがIllastratorと比較すると恐ろしいほど使いにくいUIを持っており、折角の高機能へアクセスするにはどうしたら良いのかわからないと挫折する人が多く出る。いやなんでホントこんなUIなんだ。
ただ、諦めずクソUIに付き合っていると不思議なもので人間は慣れてしまい結構自由度高くベクターグラフィックスを生成できるようになる。
Adobe Illastratorには無い長所としてSVG規格へ厳密に従うという方針で開発されているため、Illastratorで生成したSVGをWebでそのまま使うとWebブラウザで謎の描画バグにWeb屋は悩まされるがInkscapeではそれが無い。描画バグが起きるとき製作者が間違った設定を行っているか、Webブラウザ側が使っている設定に未対応な場合がほとんど。
将来的にサポートする気はあるらしいが現状はアニメーションSVGに弱いのも残念でならない。どうしてもアニメーションSVGをやりたいのであればInkscapeで生成された静止画SVGをアニメーションSVG化することを想定しているaniGenというWebベースのエディタがあるので調べてみると良い。
AdobePhotoshopの代替として挙げられがちだが、元来Web用の画像を製作するためのラスターグラフィックスソフトウェアなのでRAW現像や写真を加工するためのソフトじゃないが、本家すらその辺のことを忘れたふりをしている。
画像編集や加工で求められる基本的な機能はほぼ網羅されているが、RAW現像に関しては標準状態のままではできず、最近のAdobeが搭載している人工知能を用いた機能もないのでクラシカルなラスターグラフィックスソフトウェアと表現することもできる。
GIMPとInkscapeが使えると大半の画像製作は何とかなってしまうため一部の情報技術者寄りのギークはPhotoshopやIllastratorは触ったこともなく使えないがGIMPとInkscapeは困らない程度には扱えるというデザイナーがツッコミ入れそうなおかしなスキルセットになっていることがある。
AdobeLightroomの代替として挙げられがちなオープンソースのRAW現像ソフトウェア。
実はdcrawというRAW現像のためのオープンソースのライブラリのフロントエンドであり、GIMPでRAW現像するために活用されるUFrawも同様にdcrawのフロントエンドであるため中身は同じだったりする。オープンソースのRAW現像ソフトウェアはdcraw使いがち。
オープンソースソフトウェアでRAW現像を賄っている人はGIMPでUFrawを活用してRAW現像するよりもUI的に使いやすいのでRaw TherapeeでRAW現像でTIFFを出力しGIMPで微調整するような使い方をしている人が多い。
オープンソースの2DCADで以前はQcadと呼ばれていた。
一部の読者はJw_cadのJWWファイルを扱うことが可能という特徴を持っているというだけで興味を惹かれてしまうのではないか。
Jw_cadとは違ってWindowsやmacOS、各種Linuxディストリビューションで動くので2DCADデータをネット上の友人知人などとやり取りしたいときに向くんじゃなかろうか?ニコニコ技術部的な遊びとか、最近流行りのルール無用JCJCタイムアタックとかで。
オープンソースの3DCADで、近年は3Dプリンターあたりの需要でよく目にするようになった。
AutodeskAutoCADやFusion 360、Dassault SystèmesSolidWorksよりも草の根では広まっており日本語でのハウツー記事もオープンソースソフトウェアとしては比較的多い印象。
シミュレーション機能はシェアウェアと比較すると弱い傾向があるものの草の根でそこまで必要か?と言われたら悩む。無料でシミュレーションやりたいならOpenFOAMにでも流し込め。
オープンソースのお絵描きに特化したラスターグラフィックスソフトウェア。
歴史的経緯ではLinux界隈でのGUIツールキットの2大巨塔にGTKとQtがあり、GTKはGIMPを作り上げるために生まれたこともありGTK側には高度なラスターグラフィックスソフトウェアが存在していたがQt側には存在していなかった。そこでGIMPの対抗としてQtを用いたKritaの開発が進められたが次第にGIMP的な画像編集ソフトウェアよりもお絵描きに特化していき現在のような性格を帯びるようになった。
SYSTEMAXペイントツールSAIやセルシスCLIP STUDIO PAINTからの影響が強く現れており、オープンソース界隈のSAIやクリスタなどと呼ばれることがある。クリスタがそうであるようにスマートデバイスへの対応も計られAndoridOS版やChrome OS版が存在する。
ただ日本の需要を敏感に拾えるクリスタなどと比較して漫画作成機能に関してKritaは弱いと言われることがあるものの、GIMPと同様に無料とは思えない機能が充実しているのもまた事実である。
オープンソースの3DCGアニメーションソフトウェアで、非常に多機能のため何故かAdobeAfter Effectsの代替として挙げられることもある。
YoutubeがBlenderのYoutubeチャンネルへ広告を載せろと迫ってBlender公式がそれを拒否してYoutubeから撤退したり、庵野秀明が率いる株式会社カラーが出資したことなどオープンソース界隈でも異彩な存在感を放っており日本国内でも非常に注目されているプロジェクトだ。
ただ、初期状態では独特なUIによる使い勝手が非常に悪くユーザーが自分で使いやすい配置を模索する必要があったりタイムラインが使いにくかったりと何故オープンソースソフトウェアはUIがクソになりがちなのか?という問題にぶち当たる。
オープンソースの2DG/3DCG兼用プログラミングIDE。つまりはUnityとかみたいなやつ。
MIT Licenseでロイヤリティーフリー、開発言語はC#もしくはC++、そしてPythonライクなGDScriptで、Unityみたいにマウスでポチポチしてオブジェクトへ色んな設定を決められるので「Unityみたいのでゲーム作りたいけど運良くヒットしたときにライセンス料がなぁ」と懸念している人に役立つ。
ちなみにWiiとニンテンドーDS用向けにリリースされたSEGAゲームタイトルのソニックカラーズのSwitchやPS4などのマルチプラットフォーム移植版ソニックカラーズアルティメットはGodotを用いて移植されているので商用でも耐えうることはSEGAが証明している。あのSEGAがソニックでだ。
オープンソースな動画編集ソフトウェア。
様々な部分で動画ライブラリのFFmpegへ依存しているためFFmepgのフロントエンドソフトとしての性格も持つ。
この手の無料の動画編集ソフトは国内だとAviUtlや近年ではBlackmagic Design DaVinci Resolveが人気だけれど、海外のオープンソース界隈ではShotcutは比較的知名度が高い。
カラーグレーディングに関して不足のない機能を有しているので高度なトランジションを用いるというよりも色を追い込むような使い方が合っているだろう。
ていうかFFmpegのフロントエンドなのでFFmpegができることは理論上なんでもできる(理論上なので追加でコマンドを叩く必要があったりするけどね)。
オープンソースのレコーディングソフトウェア。旧名称はAudacityと言われるとご存じの方も多いハズ。プライバシー問題でAudacityからプロジェクトが分岐されTenacityとして再出発することとなった。
旧Audacityは開発の主な拠点がロシアを中心に行われていたという経緯があり、現在のウクライナ-ロシア戦争へ至る前の影響からか個人情報の収集をロシア企業が行うと発表され、それに反発したユーザーらによってプロジェクトが分岐しTenacityプロジェクトが立ち上がった。
Audacity自体はVSTプラグインが動作するなど非常に高機能なレコーディングソフトウェアであったがウクライナ-ロシアの騒動に巻き込まれたと言った感じだ。
Audacityから分岐したTenacityもそのまま高機能なレコーディングソフトウェアなのでこれからはTenacityを使ったほうが色々面倒が少ないだろう。
ProToolsの代替として挙げられがちなオープンソースのDAW。非常に高機能でDAWとして求められることの大半ができるものの、これもまた通例通り最近流行りの人工知能を用いた云々かんぬんは標準状態だとできない。
Ardourプロジェクトの立ち上げをし主要開発者であるポール・デービス氏はJACK Audio Connection Kitのプロジェクトの立ち上げをし主要開発者であるという事実を伝えると驚く人がいるかも知れない。LinuxとGitのリーナス・トーバルズ的な文脈だ。
オープンソース界のFL Studioと呼ばれることもあるDAW。ステップシーケンサーを中心に作曲するタイプのDAWで電子音楽が得意。LMMSという名称はLinux Multi MediaStudioの略でLinuxに端を発してマルチプラットフォーム展開をしたDAW。
オープンソースのDAWにしては珍しく初期状態から多数のソフトウェアシンセサイザープラグインが用意されておりインストールした時点で遊び始めることができるものの、オープンソースの例に漏れずクソUIを持っており使いにくい。GIMPやBlenderもそうだが1990年代後半〜2000年代前半あたりに流行したMDI(Multiple DocumentInterface)を未だに引きずっているためクソUIになりがちなのだ。
ググると日本国内にも意外とユーザーは居て、DTMやりたいけど初期投資は低く抑えたいみたいなユーザーが選んでいる模様。そういう需要ならLMMSの他に基本無料で全機能が使えて一部のプリセットが有料のVitalっていうソフトウェアシンセサイザーも導入しておくと延々遊べるよ。
オープンソースなWebブラウザとして非常に有名な存在。
Google率いるChromium系Webブラウザに近年物凄く押されているものの独禁法を回避するためGoogleはMozillaへ出資しているという歪な構造を持つ。
Mozillaの運営が下手すぎて資金をドブに捨てることを繰り返しているためGekkoレンダリングエンジンに未来があるのかと一部の識者から不安がられている。
Firefoxは使いやすいのか?と言われたら、それはもう好みの問題としか返せないのだがカスタマイズ性は非常に高い。
というわけで書いていて飽きたからこの辺でやめておく。気が向いたら何か追記するかもしれない。
Permalink |記事への反応(15) | 04:58
雑誌のInterfaceでライセンス6ヶ月無料となっていて、一部界隈で話題になっているMATLAB。
普段MATLABを使っている身だが、Pythonのライブラリが充実している状況で、MATLABを使う意味は何か悩むことがある。
それなりに高いライセンス料を払って効果出てるのかって話になる。
本体だけでなくToolboxも使い出すと高くなる。
MATLAB言語仕様として速度が遅い(for文はJITで昔より高速になったというが遅い)だけでなく、高いワークステーションを買ったとしても普通にプログラムするとシングルプロセスで遅い。
GPUやマルチコアの性能を活かすには、それ用のコードに書き換えと、メモリーコピーの影響などもあるので実際速くなるかプロファイルで試行錯誤が必要になる。
plot周り、画像周りは気になる。
とはいえ学生からすると会社に入ってからは使わない物を学ぶより、Pythonを学びたいはずだ。
企業が使う場合に関しては、先に挙げた理由でまず業務効率になかなか結びつかない。
低レイヤー過ぎて開発コストがかかる、コストがかかる割に遅いなら別の手段で開発するはずだ。
昔からのMATLABコードを動かしている所以外、新規でMATLABを学ぶメリットはあるのか。
もう1つ気になる点は数値計算や画像処理など、色々対応してはいるが、
画像だったらHDRの表示対応などだ。今どきのディスプレイ表示に対応してない。(HDR機能はあるが古い)
CAE的な物も教科書的な物は出来るが、業務的な物は扱いにくい。
toolboxが沢山あり、かつドキュメントもそれなりの量があるので、業務でも使えそうに思ってしまうが、
実際業務を進めると詰むことになり、結局別の有名ソフトで立ち上げ直すとなりがち。
(Juliaが代わりになると一時期話題になっていたが、実際本格的に使うと色々足りてない。)
GoMockってのはGo言語のライブラリで、依存するinterfaceをテスト用モックに置き換えてくれる。
それで、テスト中のモックの期待される振る舞い等を簡単に定義できるのだ。
期待される振る舞いってのは、モックのメソッド呼び出しやその引数とかだな。
期待される呼び出しが無かったり、引数が違ったりするとテストが失敗してくれる。
非同期処理のテストだとよく、wg.Done()をモックにさせたりする。
けれどそのうち辛くなってくる。
つまり、たくさんのinterfaceに依存するサービスオブジェクトのメソッドをテストしようとすると、たくさんのモックのたくさんのメソッド呼び出しの全部の期待される振る舞いを書かないといけない。
モックのメソッドの戻り値によってサービスオブジェクトのメソッド内の挙動が変わる。
すると連鎖的に、メソッド内で続いて呼ばれるモックに期待される挙動も、変わる。
依存interfaceが増えるとこの場合分けが指数関数的に増える。
当然だ。
Go言語にはテーブルドリブンテストっていう、テストケースは配列に簡単にまとめられると良い、という慣習・哲学がある。
しかし俺のサービスオブジェクトはテストケースが肥大化複雑化しすぎてしまったようだ。
モックの期待される挙動を細かくケースに分類して配列にするのは恐ろしく辛い作業だ。
やりたくない。
どうしてこうなったかは明らかだ。
モノシリックで巨大で複雑なものは凡人には扱えないからやめとけ、と偉い人は言う。
やったよ(見様見真似で)。
でもじつはここはまだ山麓だったのです。
分け入っても分け入っても青い山。
おれはどこに行けばいいのだ。
参考文献
https://little-hands.hatenablog.com/entry/2020/12/22/ddd-in-first-3month
もと増田だけど、気分まぐれに書いた駄文なので気にしないといてくれ。
それはさておき、Python が好きってことはプログラミングが好きってことで良いね?だとすると、最終的には C言語やることになるけど、今はPython をやろう。なんと言っても、Python は C言語できているけど、C言語は謎いので無視してオッケー!
そんでもって、Python の「公式ドキュメント」をきちんと読みこなせるようになろう。最初はから全部は必要ないけど、最終的には読みこなせるようになろう。そんでもって、プログラミングをしたいってことは「何かを作りたい」のだろ?たとえば、増田を作りたかったらPython だとDjango や Flask を、人工知能を作りたかったら PyTorch を使うことになるだろうけど、その手のフレームワークの「公式ドキュメント」を読みこなせるようになろう。プログラミングスクール(やめとけよ)や本は「公式ドキュメント」を読めるようにする手段だと思ってくれ。間違っても「本に書いてあったのに、動かない!」なんて、喚かないでね。洋書も和書も「公式ドキュメント」以外のテキストは間違っていることがあるので。
次に「エラーは友達」ということ。エラーはあなたを否定したのでなく、コードを否定したのであって、エラーが出ても気にしないでください。そんでもって、エラー文を丁寧に解決していけば、すごくスキルが身につきます。
最後に、Python言語だけじゃ解決できないプログラミングの問題は多々あります。データベースを操作するにはSQL が、ウェブサイトを動かすにはJavaScript が、ウェブサイトを作るにはHTML/CSS が、サーバーを設置するにはシェル言語が、Python を高速化するにはC言語が、必要になる場合がありますがPython を使いこなせると、おそらく習得は容易でしょう。なぜかというと「Python だとチョメチョメだったっよなー、これでいけないか?」という勘が形成されるので。
チューリング完全な言語はどれも表現力は同じだから、「この言語だから成功する」というのは無いよ。Python はinterface が無くて、class が弱くて、動的型付けを用いているけど、これらがないと「制約」を課すことができないというフリーダム過ぎるから、嫌らわれることはあるけどね。制約が強い言語は、ハンターハンターふうに言うと「制約が念能力を強くする」みたいな要素はあるよ。
どうしても教育を受けたいという希望があるのなら、ハーバードの CS50 という講義が無料で見れるから、推薦したいね。あれみると、我が国は計算機科学は負けていると思った。
| 時間 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
|---|---|---|---|---|
| 00 | 96 | 17567 | 183.0 | 40 |
| 01 | 272 | 198636 | 730.3 | 929 |
| 02 | 193 | 70058 | 363.0 | 128 |
| 03 | 320 | 150343 | 469.8 | 630 |
| 04 | 148 | 89572 | 605.2 | 714 |
| 05 | 216 | 127183 | 588.8 | 725 |
| 06 | 83 | 46510 | 560.4 | 709 |
| 07 | 51 | 19774 | 387.7 | 368 |
| 08 | 75 | 13686 | 182.5 | 43 |
| 09 | 118 | 37241 | 315.6 | 160.5 |
| 10 | 137 | 13100 | 95.6 | 38 |
| 11 | 119 | 13112 | 110.2 | 49 |
| 12 | 144 | 17102 | 118.8 | 59 |
| 13 | 131 | 18129 | 138.4 | 53 |
| 14 | 183 | 22752 | 124.3 | 48 |
| 15 | 192 | 17606 | 91.7 | 37 |
| 16 | 137 | 13694 | 100.0 | 47 |
| 17 | 107 | 11608 | 108.5 | 50 |
| 18 | 119 | 11602 | 97.5 | 43 |
| 19 | 97 | 10114 | 104.3 | 46 |
| 20 | 167 | 16619 | 99.5 | 36 |
| 21 | 176 | 18675 | 106.1 | 42.5 |
| 22 | 118 | 13916 | 117.9 | 44.5 |
| 23 | 102 | 8682 | 85.1 | 42 |
| 1日 | 3501 | 977281 | 279.1 | 94 |
ロア(11),みゆ(13),ジャーキー(3), Trait(3),上げ底(12),富士山頂(3), 詰まん(3),ナイチンゲール(6),interface(3),ポプラ(5),消費財(5),レンタル(50),方言(15),スタバ(12),セブン(10),失望(10),鬼滅の刃(15),ラップ(10), 若く(24),若い女(14), 洗わ(7),きれいな(10),Vtuber(16),定義(52),中年(15), 消費(53), 滅(11),美人(31),無職(23),性的(53), 鬼(15),容姿(23),無意味(16),メンヘラ(14),LGBT(12)
■無職中年男が若くてきれいな女性に失望した話 /20201021210748(67), ■LGBTに物申す。 /20201022112648(16), ■継承は禁止するべき /20201022005749(15), ■観光がなんなのかわかんなくなってきた /20201020160713(14), ■東証の障害、富士通はケシカラン! /20201021201859(11), ■嫁とのやりとりがものすごく煩わしい /20201022091003(11), ■セブンイレブンは一度潰れたほうが良いよ /20201021232805(10), ■ちんぽがイキそうな時にどんな歌を歌うべきか /20201021193539(9), ■ /20201022120751(8), ■ /20201022010831(8), ■京○ニ、ルッキズム、金閣寺 /20201022130009(8), ■増田に下の名前がないのでつけることにした /20201022160132(7), ■この国で生きることが地獄でない理由を言える人なんているの? /20201022163026(7), ■マスクに効果があるとの研究結果ではノーマスク勢は変わらない /20201022183903(7), ■ /20201022144746(7), ■マスク無しで喋る人に傷害罪を適応してほしい /20201022150414(7), ■テレワークどうでしょう /20201020221445(6), ■死にたいと思ったらエアロバイク漕ぐといいんだよ /20201022101050(6), ■性的消費って結局なんなん? /20201022125845(6), ■毒親 /20201022211923(6), ■ /20201022140923(6), ■にじさんじファンはあきらめて覚悟しろ /20201022210505(6)
まぁ、でも多分こんな目的では?という予想はあるよ。
・Java が単一継承となり、振る舞いの規約としてInterface が生まれ、具象化が不要な始祖クラスとして抽象クラスが発明された。おかげで、言語が官僚化した。
・Ruby とScala では、Interface に振る舞いが記載できるようになって、Mix-In という方法で振る舞いを継承できるようにした。その継承に優劣をつけれるようにすることで、C++ とJava の出来なかったことを解消しようとした。
・今のところ、単一継承を行うクラスベースの継承を行う言語でこれ以上の解答を用意できた言語はない。今のはやりは Rust のような後付の継承を良しとするプロトタイプベースの継承が時代のはやりである。
こんな感じなんじゃねーの?Ruby が好きだから、Ruby史観で書いたけど。つまり、トレイトって「振る舞い」が記載できるInterface のことだと思うよ。